<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mecwiki.etsi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dilallo</id>
	<title>MECwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mecwiki.etsi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dilallo"/>
	<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=Special:Contributions/Dilallo"/>
	<updated>2026-06-04T09:30:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3519</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3519"/>
		<updated>2021-12-16T19:22:55Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Home Page====&lt;br /&gt;
* Brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** View version history&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Sandbox Dashboard====&lt;br /&gt;
When a user signs in, MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id for a specific MEP instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
MEC Sandbox currently provides various network scenarios with different assortments of technologies. &lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations &lt;br /&gt;
of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their &lt;br /&gt;
new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disclaimer:&#039;&#039;&#039; PoA characteristics do not reproduce Monaco&#039;s a real operator deployment&lt;br /&gt;
&lt;br /&gt;
[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
&lt;br /&gt;
[[File:Network-4g.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Baselined on the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEC Platforms (MEP) geographically distributed within the MEC Sandbox emulated edge network&lt;br /&gt;
** MEP1 - Centrally located (as in the Single MEP scenarios)&lt;br /&gt;
** MEP2 - located in Zone 4 (green zone)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
&lt;br /&gt;
* Two dual MEP scenarios are available:&lt;br /&gt;
** Regular path: high &amp;amp; low velocity terminals have the same mobility paths as in other scenarios; MEC021 AMS state transfer events occur infrequently due to the long travel path and not all terminals visiting zone 4.&lt;br /&gt;
** Short path: high velocity terminals have shortened mobility paths to increase transitions between zone 3 and 4; MEC021 AMS state transfer events occur frequently due to increased transitions.&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:Ue-stationary.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
&lt;br /&gt;
[[File:Ue-low-velocity.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
&lt;br /&gt;
[[File:Ue-high-velocity.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The number of UEs in a network scenario is dynamically configurable, however the positions &amp;lt;br&amp;gt;and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - Edge Platform Application Enablement (Mp1) ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; advertisement&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS rules and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC012 - Radio Network Information Service (RNIS) ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC013 - Location Service ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC021 - Application Mobility Service (AMS) ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
# Application self-controlled&lt;br /&gt;
#* Application triggers and executes the context transfer&lt;br /&gt;
#* Context is transferred from source to target application&lt;br /&gt;
#* MEC system&#039;s role is to enable connectivity&lt;br /&gt;
# Device assisted&lt;br /&gt;
#* Device triggers and executes the context transfer&lt;br /&gt;
#* Context is kept on the device&lt;br /&gt;
#* MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
# MEC assisted&lt;br /&gt;
#* MEC system triggers and assists the context transfer&lt;br /&gt;
#* Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on &#039;&#039;&#039;MEC assisted&#039;&#039;&#039; context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC028 - WLAN Access Information Service (WAIS) ====&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Sign In ====&lt;br /&gt;
&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; External OAuth provider login and authorization may be seamless if they have already &amp;lt;br&amp;gt;been performed&lt;br /&gt;
&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC Sandbox Dashboard ====&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an &lt;br /&gt;
external user MEC Application.&lt;br /&gt;
&lt;br /&gt;
In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at&lt;br /&gt;
orchestration time. &lt;br /&gt;
&lt;br /&gt;
In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally;&lt;br /&gt;
&lt;br /&gt;
Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including&lt;br /&gt;
* type (request/notification)&lt;br /&gt;
* service involved&lt;br /&gt;
* endpoint&lt;br /&gt;
* HTTP method&lt;br /&gt;
*time&lt;br /&gt;
*response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
A drop down allows to select the desired MEC API.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; MEC Services are created on Network selection; time must be allowed for the &amp;lt;br&amp;gt;MEC Service to start. &lt;br /&gt;
&lt;br /&gt;
Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Application Details show information about the MEC Service application instance; it also provides controls to control MEC Service lifecycle.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API&lt;br /&gt;
&lt;br /&gt;
From the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The provided link must be provisioned in an external MEC application that access MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
Next figure shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
&lt;br /&gt;
[[File:Swagger1.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Next figure shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
&lt;br /&gt;
[[File:Swagger2.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Next figure shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
&lt;br /&gt;
[[File:Swagger3.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; Any external application or process with HTTP client capabilities and access to the &amp;lt;br&amp;gt;MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Subscriptions ====&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | [[File:Example-subscription.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.etsi.org/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.etsi.org/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC013 Location API Common Examples ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate &amp;lt;br&amp;gt;notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC012 RNI API Common Examples ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until &amp;lt;br&amp;gt;the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. &amp;lt;br&amp;gt;The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to &amp;lt;br&amp;gt;see the notification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC028 WAI API Common Examples ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - MEC Application startup &amp;amp; shutdown ====&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - MEC Application service consuming use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - MEC Application service offering use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - Scope Of Locality use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC021 - MEC Assisted application mobility use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; coverage area: &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; coverage area: &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, enable 3 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Create two MEC Application Instance IDs; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;IMPORTANT NOTE:&#039;&#039;&#039; both MEC Application Instance IDs must be created with the same MEC Application name; &amp;lt;br&amp;gt;this informs the Application Mobility Service that the MEC Application instances are for the same &amp;lt;br&amp;gt;MEC Application and therefore candidates for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The target MEC Application instance must be registered with AMS to be considered a valid target.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The context transfer executes within the user&#039;s external environment; it is out of scope of &amp;lt;br&amp;gt;the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
At this point, the target MEC Application running on &#039;&#039;mep2&#039;&#039; becomes the source MEC Application for future Mobility Procedure notifications. To do so, it must update its AMS registration and subscription to begin tracking the terminal device.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011/MEC021 - Using an external application ====&lt;br /&gt;
&lt;br /&gt;
The example described in this section uses an open source external application called Demo3 that can be configured to access ETSI MEC Sandbox and demonstrate interactions with MEC011 and MEC021 services.&lt;br /&gt;
&lt;br /&gt;
Demo3 application is available as part of a project called AdvantEDGE (&#039;&#039;[https://github.com/InterDigitalInc/AdvantEDGE GitHub]&#039;&#039;, &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/ Documentation]&#039;&#039;); it is a simplified MEC application composed of a Frontend and Backend.&lt;br /&gt;
* &#039;&#039;&#039;Frontend&#039;&#039;&#039; presents a dashboard to the user for observing application state, controlling MEC011 registration and choosing terminals participating to MEC021 AMS&lt;br /&gt;
* &#039;&#039;&#039;Backend&#039;&#039;&#039; is the MEC Application communicating with MEC Services offered by the MEC Sandbox (MEC011, MEC021) and performing MEC011 registration and AMS management, including state transfers between different MEC021 AMS instances.&lt;br /&gt;
&lt;br /&gt;
Demo3 application is available as a pre-built binary or alternatively can be built from source:&lt;br /&gt;
* Pre-built&lt;br /&gt;
** Available in the GitHub release bundle, starting with AdvantEDGE v1.8.1 (&#039;&#039;[https://github.com/InterDigitalInc/AdvantEDGE/releases here]&#039;&#039;)&lt;br /&gt;
** &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo3/#optionally-use-pre-built-binaries-from-github-release Instructions]&#039;&#039;&lt;br /&gt;
* Built from source:&lt;br /&gt;
** &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo3/#optionally-use-pre-built-binaries-from-github-release Demo3 Build instructions]&#039;&#039;&lt;br /&gt;
** &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-dev/#go-toolchain Go toolchain build environment]&#039;&#039;&lt;br /&gt;
** &#039;&#039;[https://github.com/InterDigitalInc/AdvantEDGE/tree/master/examples/demo3 Demo3 Source Code]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Demo3 usage synopsis is:&lt;br /&gt;
# Provisioning for MEC Application instances&lt;br /&gt;
#* MEC Sandbox&lt;br /&gt;
#** Login MEC Sandbox&lt;br /&gt;
#** Deploy a Dual MEP Scenario (short-path recommended)&lt;br /&gt;
#** Configure two Application instance IDs (name: demo3, locality: one on MEP1 and one on MEP2)&lt;br /&gt;
#* Demo3&lt;br /&gt;
#** Configure two instances (with respective application instance IDs)&lt;br /&gt;
#** Start execution of both instances&lt;br /&gt;
#** NOTE: The system where each instance is executing must be able to receive MEC Sandbox notifications&lt;br /&gt;
# Execution and AMS events&lt;br /&gt;
#* From Demo3 Frontend dashboard of each application&lt;br /&gt;
#** Register both applications&lt;br /&gt;
#** Add tracked terminal(s) to AMS (e.g. 10.100.0.1, 10.100.0.2, etc.)&lt;br /&gt;
#** NOTE: terminals should be added to Demo3 instance corresponding to the zone where they are located when added&lt;br /&gt;
#** Observe MEC021 Assisted state transfers between both Demo3 instances as terminal transitions between Zone 3 and Zone 4&lt;br /&gt;
&lt;br /&gt;
Detailed steps to use Demo3 with the MEC Sandbox are available [https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo3/#using-demo3-with-etsi-mec-sandbox here]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
MEC Sandbox issues should be reported on Slack, where they can be discussed with the STF team that maintains the MEC Sandbox.&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3518</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3518"/>
		<updated>2021-12-16T18:53:44Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Home Page====&lt;br /&gt;
* Brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** View version history&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Sandbox Dashboard====&lt;br /&gt;
When a user signs in, MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id for a specific MEP instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
MEC Sandbox currently provides various network scenarios with different assortments of technologies. &lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations &lt;br /&gt;
of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their &lt;br /&gt;
new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disclaimer:&#039;&#039;&#039; PoA characteristics do not reproduce Monaco&#039;s a real operator deployment&lt;br /&gt;
&lt;br /&gt;
[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
&lt;br /&gt;
[[File:Network-4g.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Baselined on the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEC Platforms (MEP) geographically distributed within the MEC Sandbox emulated edge network&lt;br /&gt;
** MEP1 - Centrally located (as in the Single MEP scenarios)&lt;br /&gt;
** MEP2 - located in Zone 4 (green zone)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
&lt;br /&gt;
* Two dual MEP scenarios are available:&lt;br /&gt;
** Regular path: high &amp;amp; low velocity terminals have the same mobility paths as in other scenarios; MEC021 AMS state transfer events occur infrequently due to the long travel path and not all terminals visiting zone 4.&lt;br /&gt;
** Short path: high velocity terminals have shortened mobility paths to increase transitions between zone 3 and 4; MEC021 AMS state transfer events occur frequently due to increased transitions.&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:Ue-stationary.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
&lt;br /&gt;
[[File:Ue-low-velocity.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
&lt;br /&gt;
[[File:Ue-high-velocity.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The number of UEs in a network scenario is dynamically configurable, however the positions &amp;lt;br&amp;gt;and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - Edge Platform Application Enablement (Mp1) ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; advertisement&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS rules and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC012 - Radio Network Information Service (RNIS) ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC013 - Location Service ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC021 - Application Mobility Service (AMS) ====&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
# Application self-controlled&lt;br /&gt;
#* Application triggers and executes the context transfer&lt;br /&gt;
#* Context is transferred from source to target application&lt;br /&gt;
#* MEC system&#039;s role is to enable connectivity&lt;br /&gt;
# Device assisted&lt;br /&gt;
#* Device triggers and executes the context transfer&lt;br /&gt;
#* Context is kept on the device&lt;br /&gt;
#* MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
# MEC assisted&lt;br /&gt;
#* MEC system triggers and assists the context transfer&lt;br /&gt;
#* Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on &#039;&#039;&#039;MEC assisted&#039;&#039;&#039; context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC028 - WLAN Access Information Service (WAIS) ====&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Sign In ====&lt;br /&gt;
&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; External OAuth provider login and authorization may be seamless if they have already &amp;lt;br&amp;gt;been performed&lt;br /&gt;
&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC Sandbox Dashboard ====&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an &lt;br /&gt;
external user MEC Application.&lt;br /&gt;
&lt;br /&gt;
In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at&lt;br /&gt;
orchestration time. &lt;br /&gt;
&lt;br /&gt;
In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally;&lt;br /&gt;
&lt;br /&gt;
Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including&lt;br /&gt;
* type (request/notification)&lt;br /&gt;
* service involved&lt;br /&gt;
* endpoint&lt;br /&gt;
* HTTP method&lt;br /&gt;
*time&lt;br /&gt;
*response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
A drop down allows to select the desired MEC API.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; MEC Services are created on Network selection; time must be allowed for the &amp;lt;br&amp;gt;MEC Service to start. &lt;br /&gt;
&lt;br /&gt;
Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Application Details show information about the MEC Service application instance; it also provides controls to control MEC Service lifecycle.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API&lt;br /&gt;
&lt;br /&gt;
From the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The provided link must be provisioned in an external MEC application that access MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
Next figure shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
&lt;br /&gt;
[[File:Swagger1.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Next figure shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
&lt;br /&gt;
[[File:Swagger2.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Next figure shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
&lt;br /&gt;
[[File:Swagger3.png|border|750px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; Any external application or process with HTTP client capabilities and access to the &amp;lt;br&amp;gt;MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Subscriptions ====&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | [[File:Example-subscription.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.etsi.org/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.etsi.org/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC013 Location API Common Examples ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate &amp;lt;br&amp;gt;notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC012 RNI API Common Examples ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until &amp;lt;br&amp;gt;the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. &amp;lt;br&amp;gt;The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to &amp;lt;br&amp;gt;see the notification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC028 WAI API Common Examples ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - MEC Application startup &amp;amp; shutdown ====&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - MEC Application service consuming use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - MEC Application service offering use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011 - Scope Of Locality use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC021 - MEC Assisted application mobility use case ====&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; coverage area: &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; coverage area: &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;IMPORTANT NOTE:&#039;&#039;&#039; both MEC Application Instance IDs must be created with the same MEC Application name; &amp;lt;br&amp;gt;this informs the Application Mobility Service that the MEC Application instances are for the same &amp;lt;br&amp;gt;MEC Application and therefore candidates for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; The context transfer executes within the user&#039;s external environment; it is out of scope of &amp;lt;br&amp;gt;the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MEC011/MEC021 - Using an external application ====&lt;br /&gt;
&lt;br /&gt;
The example described in this section uses an open source external application called Demo3 that can be configured to access ETSI MEC Sandbox and demonstrate interactions with MEC011 and MEC021 services.&lt;br /&gt;
&lt;br /&gt;
Demo3 application is available as part of a project called AdvantEDGE (&#039;&#039;[https://github.com/InterDigitalInc/AdvantEDGE GitHub]&#039;&#039;, &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/ Documentation]&#039;&#039;); it is a simplified MEC application composed of a Frontend and Backend.&lt;br /&gt;
* &#039;&#039;&#039;Frontend&#039;&#039;&#039; presents a dashboard to the user for observing application state, controlling MEC011 registration and choosing terminals participating to MEC021 AMS&lt;br /&gt;
* &#039;&#039;&#039;Backend&#039;&#039;&#039; is the MEC Application communicating with MEC Services offered by the MEC Sandbox (MEC011, MEC021) and performing MEC011 registration and AMS management, including state transfers between different MEC021 AMS instances.&lt;br /&gt;
&lt;br /&gt;
Demo3 application is available as a pre-built binary or alternatively can be built from source:&lt;br /&gt;
* Pre-built&lt;br /&gt;
** Available in the GitHub release bundle, starting with AdvantEDGE v1.8.1 (&#039;&#039;[https://github.com/InterDigitalInc/AdvantEDGE/releases here]&#039;&#039;)&lt;br /&gt;
** &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo3/#optionally-use-pre-built-binaries-from-github-release Instructions]&#039;&#039;&lt;br /&gt;
* Built from source:&lt;br /&gt;
** &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo3/#optionally-use-pre-built-binaries-from-github-release Demo3 Build instructions]&#039;&#039;&lt;br /&gt;
** &#039;&#039;[https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-dev/#go-toolchain Go toolchain build environment]&#039;&#039;&lt;br /&gt;
** &#039;&#039;[https://github.com/InterDigitalInc/AdvantEDGE/tree/master/examples/demo3 Demo3 Source Code]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Demo3 usage synopsis is:&lt;br /&gt;
# Provisioning for MEC Application instances&lt;br /&gt;
#* MEC Sandbox&lt;br /&gt;
#** Login MEC Sandbox&lt;br /&gt;
#** Deploy a Dual MEP Scenario (short-path recommended)&lt;br /&gt;
#** Configure two Application instance IDs (name: demo3, locality: one on MEP1 and one on MEP2)&lt;br /&gt;
#* Demo3&lt;br /&gt;
#** Configure two instances (with respective application instance IDs)&lt;br /&gt;
#** Start execution of both instances&lt;br /&gt;
#** NOTE: The system where each instance is executing must be able to receive MEC Sandbox notifications&lt;br /&gt;
# Execution and AMS events&lt;br /&gt;
#* From Demo3 Frontend dashboard of each application&lt;br /&gt;
#** Register both applications&lt;br /&gt;
#** Add tracked terminal(s) to AMS (e.g. 10.100.0.1, 10.100.0.2, etc.)&lt;br /&gt;
#** NOTE: terminals should be added to Demo3 instance corresponding to the zone where they are located when added&lt;br /&gt;
#** Observe MEC021 Assisted state transfers between both Demo3 instances as terminal transitions between Zone 3 and Zone 4&lt;br /&gt;
&lt;br /&gt;
Detailed steps to use Demo3 with the MEC Sandbox are available [https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo3/#using-demo3-with-etsi-mec-sandbox here]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
MEC Sandbox issues should be reported on Slack, where they can be discussed with the STF team that maintains the MEC Sandbox.&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3113</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3113"/>
		<updated>2021-10-05T00:58:38Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC021 - MEC Assisted application mobility use case (Work-In-Progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; coverage area: &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; coverage area: &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and therefore candidates for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 NOTE: The context transfer executes within the user&#039;s external environment; it is out of scope of the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3112</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3112"/>
		<updated>2021-10-05T00:58:20Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC021 - MEC Assisted application mobility use case (Work-In-Progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; coverage area: &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; coverage area: &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and therefore candidates for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 NOTE: The context transfer executes within the user&#039;s external environment; it is out of scope of the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3111</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3111"/>
		<updated>2021-10-04T22:04:34Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC021 - MEC Assisted application mobility use case (Work-In-Progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; cover user applications on UEs in &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; cover user applications on UEs in &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and may be considered for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 NOTE: The context transfer executes within the user&#039;s external environment; it is out of scope of the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Target MEC Application begins tracking device&lt;br /&gt;
The target MEC Application informs the AMS that it now has the device user context and is ready for a context transfer.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/2&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Target MEC Application also subscribes for Mobility Procedure notifications for the tracked UE.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id-2&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 8 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone03&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 9 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/a4340837-06ac-484c-ac3c-76a867ab9e03/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3110</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3110"/>
		<updated>2021-10-04T22:04:19Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC021 - MEC Assisted application mobility use case (Work-In-Progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; cover user applications on UEs in &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; cover user applications on UEs in &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and may be considered for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 NOTE: The context transfer executes within the user&#039;s external environment; it is out of scope of the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Target MEC Application begins tracking device&lt;br /&gt;
The target MEC Application informs the AMS that it now has the device user context and is ready for a context transfer.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/2&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Target MEC Application also subscribes for Mobility Procedure notifications for the tracked UE.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id-2&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 8 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone03&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 9 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/5db16acd-5cb7-496a-9463-f93ad4df663a/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3109</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3109"/>
		<updated>2021-10-04T22:01:31Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; cover user applications on UEs in &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; cover user applications on UEs in &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and may be considered for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
Use the service category &#039;&#039;AMSI&#039;&#039; as a query parameter to discover only the AMS services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services?ser_category_id=AMSI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone04&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Perform context transfer and inform AMS&lt;br /&gt;
The source MEC Application running on &#039;&#039;mep1&#039;&#039; performs the context transfer to the target MEC Application instance running on &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 NOTE: The context transfer executes within the user&#039;s external environment; it is out of scope of the MEC Sandbox and AMS.&lt;br /&gt;
&lt;br /&gt;
Once complete, the source MEC Application informs the AMS that the context transfer is complete by updating the device context transfer state.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/1&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 1&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;f28b12af-765a-40ab-8656-06547ad15cb5&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Target MEC Application begins tracking device&lt;br /&gt;
The target MEC Application informs the AMS that it now has the device user context and is ready for a context transfer.&lt;br /&gt;
&lt;br /&gt;
 PUT /amsi/v1/app_mobility_services/2&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;appMobilityServiceId&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;98acc221-8ee1-491c-982a-95f3e39aa12d&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Target MEC Application also subscribes for Mobility Procedure notifications for the tracked UE.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id-2&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;98acc221-8ee1-491c-982a-95f3e39aa12d&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 8 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to attach to a PoA in &#039;&#039;zone03&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039; with the target application information set to the MEC Application instance running on &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 9 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Applications using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039; for each MEC Application instance, unsubscribe from mobility procedure notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3108</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3108"/>
		<updated>2021-10-04T16:01:11Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the AMS API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; cover user applications on UEs in &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; cover user applications on UEs in &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, add 2 high-velocity UEs and pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and may be considered for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /amsi/v1/subscriptions/&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;MobilityProcedureSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/amsi-mobility-procedure/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;,&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Wait for Mobility Procedure notification&lt;br /&gt;
Un-pause UE mobility in the MEC Sandbox frontend and wait for UE &#039;&#039;10.100.0.3&#039;&#039; to reach &#039;&#039;zone04&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Observe a &#039;&#039;MobilityProcedureNotification&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3107</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3107"/>
		<updated>2021-10-04T15:51:22Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how external MEC Applications should use the Application Mobility Service (AMS) API to perform MEC-assisted application context transfers.&lt;br /&gt;
&lt;br /&gt;
Using the Application Mobility API, MEC Applications can register for simulated terminal device Mobility Procedure notifications to trigger user application context transfers across MEC Applications.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox assumes the following localities:&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep1&#039;&#039; cover user applications on UEs in &#039;&#039;zone01&#039;&#039;, &#039;&#039;zone02&#039;&#039; &amp;amp; &#039;&#039;zone03&#039;&#039;&lt;br /&gt;
* MEC Applications on MEC Platform &#039;&#039;mep2&#039;&#039; cover user applications on UEs in &#039;&#039;zone04&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms. Once deployed, pause UE mobility.&lt;br /&gt;
&lt;br /&gt;
Two MEC Application Instance IDs should be created; one on each MEC platform.&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT NOTE: both MEC Application Instance IDs must be created with the same MEC Application name; this informs the Application Mobility Service that the MEC Application instances are for the same MEC Application and may be considered for user-context transfers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover Application Mobility Service (AMS)&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Register MEC Application instances with AMS&lt;br /&gt;
Using the AMS API, send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; with device information for UE &#039;&#039;10.100.0.3&#039;&#039;. This UE starts in &#039;&#039;zone02&#039;&#039; which is in the coverage area of &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 POST /mep1/amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;deviceInformation&amp;quot;: [&lt;br /&gt;
     {&lt;br /&gt;
       &amp;quot;appMobilityServiceLevel&amp;quot;: 3,&lt;br /&gt;
       &amp;quot;associateId&amp;quot;: {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.3&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;contextTransferState&amp;quot;: 0&lt;br /&gt;
     }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;5db16acd-5cb7-496a-9463-f93ad4df663a&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Send registration information for the MEC Application instance running on MEC Platform &#039;&#039;mep2&#039;&#039;. This application instance should not provide device information.&lt;br /&gt;
&lt;br /&gt;
 POST /mep2/amsi/v1/app_mobility_services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serviceConsumerId&amp;quot;: {&lt;br /&gt;
     &amp;quot;appInstanceId&amp;quot;: &amp;quot;a4340837-06ac-484c-ac3c-76a867ab9e03&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Subscribe for AMS Mobility Procedure notifications&lt;br /&gt;
Using the AMS API, subscribe the MEC Application instance running on MEC Platform &#039;&#039;mep1&#039;&#039; for Mobility Procedure Notifications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3106</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3106"/>
		<updated>2021-10-04T14:40:41Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/1f424790-b7ab-48ba-bb69-7f325fb335c6/subscriptions/2&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3105</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3105"/>
		<updated>2021-10-04T14:35:16Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes the impacts of locality &amp;amp; scope of locality on an external MEC Application.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality is determined by MEC platform on which it is deployed.&lt;br /&gt;
&lt;br /&gt;
MEC Service scope of locality is provided at service creation.&lt;br /&gt;
&lt;br /&gt;
MEC Application locality and MEC Service scope of locality are used to determine if a service is discoverable and local to a MEC application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dual-mep&#039;&#039; network scenario must be selected for this use case; it is the only network with multiple MEC platforms and locality-specific &#039;&#039;Location Service&#039;&#039; instances.&lt;br /&gt;
&lt;br /&gt;
The MEC Application instance ID should be created on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
In this case, register for service availability updates from the Location Service on MEC platform &#039;&#039;mep1&#039;&#039;. Set &#039;&#039;isLocal&#039;&#039; to &#039;&#039;true&#039;&#039; in the subscription request to receive notifications for the local &#039;&#039;Location Service&#039;&#039; instance only.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/1f424790-b7ab-48ba-bb69-7f325fb335c6​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec013-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Disable discovered Service in same locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service in different locality as MEC Application&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the remote &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Observe that no service availability notification is sent.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service in same locality as MEC Application&lt;br /&gt;
Use the MEC Sandbox frontend to enable the local &#039;&#039;Location Service&#039;&#039; instance on MEC platform &#039;&#039;mep1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3104</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3104"/>
		<updated>2021-10-04T13:50:20Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC011 - MEC Application service offering use case (Work-In-Progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
The MEC Application registers its service and sends periodic keep-alive messages to maintain service availability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3103</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3103"/>
		<updated>2021-10-04T13:49:30Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application offers a MEC platform service for other MEC Applications to use.&lt;br /&gt;
&lt;br /&gt;
The MEC Application registers its service and sends periodic keep-alive messages to maintain service availability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
Using the Service Management API, provide the MEC Application service information to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;serName&amp;quot;: &amp;quot;TestServiceName&amp;quot;,&lt;br /&gt;
   &amp;quot;serCategory&amp;quot;: {&lt;br /&gt;
     &amp;quot;href&amp;quot;: &amp;quot;catItem1&amp;quot;,&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;id12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;TestService&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;v2&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;version&amp;quot;: &amp;quot;2.2.1&amp;quot;,&lt;br /&gt;
   &amp;quot;state&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
   &amp;quot;transportInfo&amp;quot;: {&lt;br /&gt;
     &amp;quot;id&amp;quot;: &amp;quot;TransId12345&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;REST&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;REST API&amp;quot;,&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;REST_HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;protocol&amp;quot;: &amp;quot;HTTP&amp;quot;,&lt;br /&gt;
     &amp;quot;version&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
     &amp;quot;endpoint&amp;quot;: {&lt;br /&gt;
       &amp;quot;uris&amp;quot;: [&lt;br /&gt;
         &amp;quot;https://my.callback.com/sbx-test/mep1/test-service/v2/&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;serializer&amp;quot;: &amp;quot;JSON&amp;quot;,&lt;br /&gt;
   &amp;quot;scopeOfLocality&amp;quot;: &amp;quot;MEC_SYSTEM&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
Using the returned service instance ID, send a request to retrieve the newly registered MEC Service information.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
Using the application &amp;amp; service instance IDs, send a request to remove the newly registered MEC Service.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/0f576de5-3b22-41e7-a95a-375317fcae31/services/0c0f1cca-707a-45aa-a7db-df5120a4692a&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3102</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3102"/>
		<updated>2021-10-04T13:31:40Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI.&lt;br /&gt;
&lt;br /&gt;
The MEC application then has 10 seconds to gracefully terminate. It should clean up its resources and deregister any remaining subscriptions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3101</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3101"/>
		<updated>2021-10-04T13:17:06Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC011 - MEC Application service consuming use case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI. The MEC application then has 10 seconds to gracefully terminate.&lt;br /&gt;
&lt;br /&gt;
The MEC application should clean up its resources and deregister its remaining subscriptions, for example the App Termination subscription.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching.&lt;br /&gt;
&lt;br /&gt;
This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]].&lt;br /&gt;
&lt;br /&gt;
While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3100</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3100"/>
		<updated>2021-10-04T13:14:35Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/mec_app_support/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI. The MEC application then has 10 seconds to gracefully terminate.&lt;br /&gt;
&lt;br /&gt;
The MEC application should clean up its resources and deregister its remaining subscriptions, for example the App Termination subscription.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_app_support/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications. It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
Send a request using the Service Management API to obtain a list of discoverable MEC Services.&lt;br /&gt;
&lt;br /&gt;
 GET /mec_service_mgmt/v1/services&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
Register for MEC service service availability updates to receive MEC service state change notifications.&lt;br /&gt;
&lt;br /&gt;
 POST /mec_service_mgmt/v1/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;SerAvailabilityNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteria&amp;quot;: {&lt;br /&gt;
     &amp;quot;serNames&amp;quot;: [&lt;br /&gt;
       &amp;quot;mec012-1&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;states&amp;quot;: [&lt;br /&gt;
       &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
       &amp;quot;INACTIVE&amp;quot;&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;isLocal&amp;quot;: true&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
As long as the discovered services remain available, the MEC application may communicate with them. It may send requests or subscribe for event notifications using the using the discovered MEC Service transport information.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
To simulate a change in service availability, use the MEC Sandbox frontend to disable the MEC Service that the MEC Application is watching. This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;REMOVED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
Use the MEC Sandbox frontend to enable the MEC Service that the MEC Application is watching. This triggers a &#039;&#039;SerAvailabilityNotification&#039;&#039; to the registered subscription callback URI with a change type set to &#039;&#039;ADDED&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
Gracefully terminate the MEC Application using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application shutdown procedure]]. While processing the &#039;&#039;AppTerminationNotification&#039;&#039;, unsubscribe from service availability notifications using the subscription ID obtained during registration.&lt;br /&gt;
&lt;br /&gt;
 DELETE /mec_service_mgmt/v1/applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3099</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3099"/>
		<updated>2021-10-04T12:27:22Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI. The MEC application then has 10 seconds to gracefully terminate.&lt;br /&gt;
&lt;br /&gt;
The MEC application should clean up its resources and deregister its remaining subscriptions, for example the App Termination subscription.&lt;br /&gt;
&lt;br /&gt;
 DELETE /applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
This use case describes how an external MEC Application discovers available MEC platform services and subscribes for service availability change notifications. It is assumed that the MEC Application has no prior knowledge of the MEC Services offered by the MEC platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[#MEC011_-_MEC_Application_startup_.26_shutdown|]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
Create a sandbox and obtain an application instance ID using the [[#MEC011_-_MEC_Application_startup_.26_shutdown|MEC application startup procedure]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
** Gracefully unsubscribe from service availability notifications&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3098</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3098"/>
		<updated>2021-10-04T11:50:12Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External MEC applications wishing to use these service APIs must follow the startup &amp;amp; shutdown procedures described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Select &amp;amp; copy the MEC Application Support and MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created with the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification. This step is only required to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/applications​/bdbda75e-6136-4982-9b64-562e5db3f0bc​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;bdbda75e-6136-4982-9b64-562e5db3f0bc&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully terminate MEC Application (optional)&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI. The MEC application then has 10 seconds to gracefully terminate.&lt;br /&gt;
&lt;br /&gt;
The MEC application should clean up its resources and deregister its remaining subscriptions, for example the App Termination subscription.&lt;br /&gt;
&lt;br /&gt;
 DELETE /applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/subscriptions/1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/bdbda75e-6136-4982-9b64-562e5db3f0bc/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it immediately clears any remaining resources associated with the application instance. Otherwise it waits for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application has no prior knowledge of the MEC services offered by the MEC platform&lt;br /&gt;
* MEC application discovers available services and subscribes for service availability notifications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
** Gracefully unsubscribe from service availability notifications&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3097</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3097"/>
		<updated>2021-10-01T19:54:52Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
Edge Application Enablement Service APIs (MEC011) allow MEC applications to:&lt;br /&gt;
* Discover &amp;amp; offer MEC platform services&lt;br /&gt;
* Subscribe for application lifecycle and MEC platform service availability notifications&lt;br /&gt;
&lt;br /&gt;
External user MEC applications wishing to use these service APIs must follow the startup procedure described below.&lt;br /&gt;
&lt;br /&gt;
If a graceful application termination is desired, the graceful shutdown procedure must be followed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* Select a network to deploy in the user sandbox&lt;br /&gt;
* Create a unique MEC Application Instance ID&lt;br /&gt;
* Obtain the MEC Application Support &amp;amp; MEC Service Management API paths&lt;br /&gt;
* Provision the instance ID &amp;amp; paths in the external MEC Application&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Confirm application readiness&lt;br /&gt;
Using the MEC application instance ID created using the MEC Sandbox frontend, inform the MEC Sandbox that the MEC application is up &amp;amp; running by sending the following request.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/{appInstanceId}/confirm_ready&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;indication&amp;quot;: &amp;quot;READY&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
Optionally register for an application termination notification to enable graceful application shutdown.&lt;br /&gt;
&lt;br /&gt;
 POST ​/applications​/{appInstanceId}​/subscriptions&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AppTerminationNotificationSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;https://my.callback.com/my.app.endpoint&amp;quot;,&lt;br /&gt;
   &amp;quot;appInstanceId&amp;quot;: &amp;quot;myAppInstanceId&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
Using the MEC Sandbox frontend, delete the unique MEC application instance ID for the MEC Application to be shutdown.&lt;br /&gt;
&lt;br /&gt;
If subscribed for graceful termination, an application termination notification is sent to the registered callback URI. The MEC application then has 10 seconds to gracefully terminate.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Unsubscribe from app termination notifications&lt;br /&gt;
The MEC application should clean up its resources and deregister its remaining subscriptions, for example the App Termination subscription.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/{appInstanceId}/subscriptions/{subscriptionId}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
When the MEC application cleanup is complete it should send a confirmation to the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
 POST /applications/{appInstanceId}/confirm_termination&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;operationAction&amp;quot;: &amp;quot;TERMINATING&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the MEC Sandbox receives this confirmation before the shutdown grace period then it may immediately clear any remaining resources associated with the application instance. Otherwise it must wait for the grace period to expire before clearing the application instance resources. Subsequent requests from this application instance ID are ignored.&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application has no prior knowledge of the MEC services offered by the MEC platform&lt;br /&gt;
* MEC application discovers available services and subscribes for service availability notifications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
** Gracefully unsubscribe from service availability notifications&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3096</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3096"/>
		<updated>2021-10-01T15:49:54Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application startup &amp;amp; shutdown (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application informs MEC platform that it has successfully started&lt;br /&gt;
* MEC application subscribes for graceful application termination and gra&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Login via the frontend &amp;amp; select Sandbox tab&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Select a network to deploy in the user sandbox&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Configure MEC Application&lt;br /&gt;
** Provision App enablement Service paths&lt;br /&gt;
** Create &amp;amp; provision a unique Application Instance ID&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Confirm App readiness&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Subscribe for App Termination notifications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shutdown Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Delete the provisioned Application Instance ID&lt;br /&gt;
** Observe app termination notification&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Gracefully unsubscribe from app termination notifications&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Confirm App Termination&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application has no prior knowledge of the MEC services offered by the MEC platform&lt;br /&gt;
* MEC application discovers available services and subscribes for service availability notifications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Discover available services&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Subscribe for service availability notifications&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Use discovered service&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Disable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 6 -&#039;&#039;&#039; Enable discovered Service&lt;br /&gt;
** Observe service availability notification&lt;br /&gt;
* &#039;&#039;&#039;Step 7 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
** Gracefully unsubscribe from service availability notifications&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 3 -&#039;&#039;&#039; Discover newly registered service&lt;br /&gt;
* &#039;&#039;&#039;Step 4 -&#039;&#039;&#039; Deregister service from the MEC platform&lt;br /&gt;
* &#039;&#039;&#039;Step 5 -&#039;&#039;&#039; Run MEC Application Shutdown procedure&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objective&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* External user MEC Application wishes to offer a service to other MEC applications&lt;br /&gt;
* MEC application registers its service and sends periodic keep-alive messages to maintain service availability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step 1 -&#039;&#039;&#039; Run MEC Application Startup procedure&lt;br /&gt;
* &#039;&#039;&#039;Step 2 -&#039;&#039;&#039; Register service on the MEC platform&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case (Work-In-Progress) ===&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3095</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3095"/>
		<updated>2021-10-01T13:13:04Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC Application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3094</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3094"/>
		<updated>2021-10-01T13:08:47Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Try-it area */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 NOTE: MEC Services are created on Network selection; time must be allowed for the MEC Service to start. Selecting a MEC API changes the displayed information in the dashboard.&lt;br /&gt;
Application Details shows information about the MEC Service application instance and provides controls to start/stop the MEC Service instance.&lt;br /&gt;
&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 NOTE: The provided link must be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3093</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3093"/>
		<updated>2021-10-01T12:53:30Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Configuration area */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API requires Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application. In a real MEC Platform deployment, the Application Instance ID of a MEC Application is provisioned at orchestration time. In the MEC Sandbox, MEC Platforms are emulated and MEC Application orchestration is handled externally; Application Instance IDs must therefore be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are created on Network selection; time must be allowed for the MEC Service to stat. Selecting a MEC API changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3092</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3092"/>
		<updated>2021-10-01T12:34:30Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Networks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are created on Network selection; time must be allowed for the MEC Service to stat. Selecting a MEC API changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3091</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3091"/>
		<updated>2021-10-01T12:27:53Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Network Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow MEC Applications to offer their new services and enable experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
|[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are created on Network selection; time must be allowed for the MEC Service to stat. Selecting a MEC API changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3090</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3090"/>
		<updated>2021-10-01T12:23:55Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC Platform (MEP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network.&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow a MEC Applications to offer their new services and allow experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
|[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are created on Network selection; time must be allowed for the MEC Service to stat. Selecting a MEC API changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3089</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3089"/>
		<updated>2021-10-01T12:23:35Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC Platform (MEP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represents a compute node located near the edge of the network&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow a MEC Applications to offer their new services and allow experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
|[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are created on Network selection; time must be allowed for the MEC Service to stat. Selecting a MEC API changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3088</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3088"/>
		<updated>2021-10-01T12:22:31Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Terminology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
&lt;br /&gt;
From time to time, new Beta features are released to the general public for testing; when this happens, a BETA button appears in the top bar to provide insights on new features.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Control MEC Services lifecycle (enable/disable)&lt;br /&gt;
* Experiment with the MEC Service APIs from the browser by providing a browser based MEC client (SwaggerUI) &lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== MEC Platform (MEP) ====&lt;br /&gt;
A MEC Platform represent a compute node located near the edge of the network&lt;br /&gt;
* On the map, MEP are represented by a ticker containing a cloud icon&lt;br /&gt;
* MEC services are offered on MEP nodes via the MEC011 (Mp1) API; they can be discovered and consumed by MEC applications&lt;br /&gt;
* MEC applications running on external user equipment can be emulated as running on a MEP node by creating an Application Instance Id&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides four network scenarios with different assortments of technologies. These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs and one or more MEC Platforms located near the network edge.&lt;br /&gt;
&lt;br /&gt;
MEC Platform node(s) offer different MEC Services to be consumed by MEC Applications, allow a MEC Applications to offer their new services and allow experimentation of MEC assisted application mobility.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network (single MEP) ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (single MEP) ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
* Network has a centrally located MEP (same as 4G Scenario)&lt;br /&gt;
|&lt;br /&gt;
==== 4G-5G-WiFi Macro Network (dual MEP) ====&lt;br /&gt;
* Re-uses the 4G-5G-WiFi Macro Network &lt;br /&gt;
* Scenario contains 2 MEPs&lt;br /&gt;
** Centrally located MEP1 (Same as 4G scenario)&lt;br /&gt;
** Zone 4 (green) specific MEP2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Network-4g-5g-wifi.png|border]]&lt;br /&gt;
|[[File:Network-dual-mep-4g-5g-wifi.png|border]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC011 - Edge Platform Application Enablement (Mp1) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC011 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Mp1 reference point provides two different APIs: MEC Application Support and MEC Service Management&lt;br /&gt;
&lt;br /&gt;
These APIs allow MEC Applications to interact with the MEC System, such as:&lt;br /&gt;
* Application registration/deregistration&lt;br /&gt;
* Service discovery &amp;amp; offering&lt;br /&gt;
* Event notifications about service and application availability&lt;br /&gt;
* Traffic rules, DNS and time of day&lt;br /&gt;
MEC Sandbox supports a subset of Mp1 API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC021 - Application Mobility Service (AMS) ==&lt;br /&gt;
MEC Sandbox supports version v2.1.1 of the MEC021 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Application Mobility Service provides support for relocation of user context and/or application instance between MEC hosts.&lt;br /&gt;
&lt;br /&gt;
AMS defines three types of MEC application user-context transfer:&lt;br /&gt;
* Application self-controlled&lt;br /&gt;
** Application triggers and executes the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
** MEC system&#039;s role is to enable connectivity&lt;br /&gt;
* Device assisted&lt;br /&gt;
** Device triggers and executes the context transfer&lt;br /&gt;
** Context is kept on the device&lt;br /&gt;
** MEC system&#039;s role is to decide if application mobility is required&lt;br /&gt;
* MEC assisted&lt;br /&gt;
** MEC system triggers and assists the context transfer&lt;br /&gt;
** Context is transferred from source to target application&lt;br /&gt;
MEC Sandbox focuses on MEC assisted context transfers; device assisted requires Mx2 (future consideration) and application self-controlled can be realized by a user or MEC App without AMS as user traffic does not reach MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v2.2.1 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
* Compute node&lt;br /&gt;
** Dark blue icon shows a cloud&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** MEC Application/Services are dynamically updated&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
* Configure Application Instance IDs - dynamically add/remove IDs&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are created on Network selection; time must be allowed for the MEC Service to stat. Selecting a MEC API changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your User application provides the link to use to reach the selected MEC API from an external MEC application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
MEC011 API require Application Instance IDs to be provisioned in the MEC Sandbox prior to using an external user MEC Application; on a real MEC Platform. In a MEC Platform deployment, the Application Instance ID of a MEC Application would be provisioned at orchestration time; since MEC Sandbox emulates a MEC Platform and orchestration of MEC Application is handled externally, the Application Isntance ID has to be provisioned manually.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNIS/WAIS/AMS/Mp1Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure and concepts apply for other MEC APIs, with the exception of the resource URL response format which sometimes differ. Refer to the SwaggerUI documentation for more details about subscriptions.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service consuming use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - MEC Application service offering use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC011 - Scope Of Locality use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
=== MEC021 - MEC Assisted application mobility use case ===&lt;br /&gt;
Work-In-Progress&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3060</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3060"/>
		<updated>2021-09-30T17:02:06Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Web UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Manage MEC application instance IDs&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3059</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=3059"/>
		<updated>2021-09-30T15:07:00Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Platform Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-npe5mxvk-eOIHwrxtNbYG1OiwavHHDg Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2999</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2999"/>
		<updated>2021-02-17T13:00:14Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage was presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2998</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2998"/>
		<updated>2021-02-16T22:07:34Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC Sandbox Concepts &amp;amp; Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage were presented in a webinar (February 2021). The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2997</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2997"/>
		<updated>2021-02-16T22:07:11Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage were presented in a webinar (February 2021).&lt;br /&gt;
&lt;br /&gt;
The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2996</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2996"/>
		<updated>2021-02-16T22:06:37Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage were presented in a webinar (February 2021).&lt;br /&gt;
&lt;br /&gt;
The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
 NOTE: To access the Q&amp;amp;A users must first join the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2995</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2995"/>
		<updated>2021-02-16T22:00:40Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* MEC Sandbox Concepts &amp;amp; Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage were presented in a webinar in February 2021.&lt;br /&gt;
&lt;br /&gt;
The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2994</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2994"/>
		<updated>2021-02-16T22:00:10Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage were presented in a webinar in February 2021. The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2993</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2993"/>
		<updated>2021-02-16T21:59:53Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Concepts &amp;amp; Usage ==&lt;br /&gt;
An introduction to MEC Sandbox concepts and usage were presented in a webinar in February 2021. The recording and related Q&amp;amp;A are available here:&lt;br /&gt;
* [https://www.etsi.org/events/1869-2021-01-webinar-getting-started-with-the-etsi-mec-sandbox MEC Sandbox Webinar]&lt;br /&gt;
* [https://mecsandbox.slack.com/archives/C01NBU36DU4 Q&amp;amp;A]&lt;br /&gt;
&lt;br /&gt;
[https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2992</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2992"/>
		<updated>2021-02-10T19:36:47Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board_.28Slack_channels.29|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2991</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2991"/>
		<updated>2021-02-10T19:20:54Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board (Slack channels) =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked using slack channels in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users first need to join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2990</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2990"/>
		<updated>2021-02-10T19:13:22Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox questions, feedback and discussions are tracked in the &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039;. The workspace is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace]&lt;br /&gt;
&lt;br /&gt;
New users may join the MEC Sandbox slack workspace by creating a new account using the invitation link provided here:&lt;br /&gt;
&lt;br /&gt;
* [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw Join the MEC Sandbox Slack Workspace]&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:slack-workspace.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox issues are tracked using ETSI&#039;s bug-tracking system &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;. The issue database is available here:&lt;br /&gt;
&lt;br /&gt;
* [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database]&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the issue database.&lt;br /&gt;
&lt;br /&gt;
All other users should report issues using the MEC Sandbox [[#Discussion_Board|Discussion Board]].&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:bugzilla-issues.png|border|500px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=File:Bugzilla-issues.png&amp;diff=2989</id>
		<title>File:Bugzilla-issues.png</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=File:Bugzilla-issues.png&amp;diff=2989"/>
		<updated>2021-02-10T18:42:41Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=File:Slack-workspace.png&amp;diff=2988</id>
		<title>File:Slack-workspace.png</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=File:Slack-workspace.png&amp;diff=2988"/>
		<updated>2021-02-10T18:28:31Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2987</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2987"/>
		<updated>2021-02-04T14:20:03Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
= Discussion Board =&lt;br /&gt;
The &#039;&#039;&#039;MEC Sandbox Slack Workspace&#039;&#039;&#039; should be used to ask questions or provide feedback about the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
Existing users may login directly to the [https://mecsandbox.slack.com/ MEC Sandbox Slack Workspace].&lt;br /&gt;
&lt;br /&gt;
New users should sign up and create a new MEC Sandbox Slack Workspace account [https://join.slack.com/t/mecsandbox/shared_invite/zt-liesfjwi-xIvmeUJLKX4FdY9FYcqzvw here].&lt;br /&gt;
&lt;br /&gt;
= Reporting Issues =&lt;br /&gt;
MEC Sandbox issues are tracked using &#039;&#039;&#039;Bugzilla&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Users with an EOL account may report issues directly in the [https://forge.etsi.org/bugzilla/buglist.cgi?component=MEC%20Sandbox MEC Sandbox issue database].&lt;br /&gt;
&lt;br /&gt;
All other users may report issues using the MEC Sandbox [[#Discussion_Board| Discussion Board]].&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2980</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2980"/>
		<updated>2020-12-18T21:44:28Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2979</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2979"/>
		<updated>2020-12-18T17:56:54Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Location Service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Associated Stations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track stations associated to Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;AssocStaSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/wai/assocSta&amp;quot;,&lt;br /&gt;
   &amp;quot;apId&amp;quot;: {&lt;br /&gt;
     &amp;quot;macId&amp;quot;: &amp;quot;005C02020202&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;AssocStaNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Connects to a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;br /&gt;
* Disconnected from a Wifi PoA with MAC ID &#039;&#039;005C02020202&#039;&#039;;&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2978</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2978"/>
		<updated>2020-12-18T17:50:40Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Location Service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cell Change&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; cell changes:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;CellChangeSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/cellChange&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaAssocHo&amp;quot;: {&lt;br /&gt;
     &amp;quot;associateId&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;type&amp;quot;: 1,&lt;br /&gt;
         &amp;quot;value&amp;quot;: &amp;quot;10.100.0.1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;CellChangeNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA to another 4G POA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039;&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039; &amp;amp; MCC &#039;&#039;001&#039;&#039; to another 4G POA&lt;br /&gt;
&lt;br /&gt;
 NOTE: Moving between a 4G and a non 4G POA will not trigger a cell change notification.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Establishment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE connections to cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabEstSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabEst&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabEstNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Moves from a non 4G PoA to a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NOTE: MEC Sandbox currently uses a constant QCI value of &#039;&#039;80&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAB Release&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE disconnections from cell ID &#039;&#039;1010101&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;subscriptionType&amp;quot;: &amp;quot;RabRelSubscription&amp;quot;,&lt;br /&gt;
   &amp;quot;callbackReference&amp;quot;: &amp;quot;http://my.callback.com/rni/rabRel&amp;quot;,&lt;br /&gt;
   &amp;quot;filterCriteriaQci&amp;quot;: {&lt;br /&gt;
     &amp;quot;ecgi&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;plmn&amp;quot;: {&lt;br /&gt;
           &amp;quot;mnc&amp;quot;: &amp;quot;001&amp;quot;,&lt;br /&gt;
           &amp;quot;mcc&amp;quot;: &amp;quot;001&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;cellId&amp;quot;: &amp;quot;1010101&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ],&lt;br /&gt;
     &amp;quot;erabId&amp;quot;: 6,&lt;br /&gt;
     &amp;quot;qci&amp;quot;: 80&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;RabRelNotification&#039;&#039; notification will be sent when a UE with an Erabid of &#039;&#039;6&#039;&#039; does the following:&lt;br /&gt;
* Moves from a 4G PoA with cell ID &#039;&#039;1010101&#039;&#039;, MNC &#039;&#039;001&#039;&#039;, MCC &#039;&#039;001&#039;&#039; &amp;amp; QCI &#039;&#039;80&#039;&#039; to a non 4G PoA&lt;br /&gt;
&lt;br /&gt;
 NOTE: A new ErabId is allocated every time a UE connects to a 4G POA and stays unchanged until the UE disconnects from any 4G POA. The RAB Release notification can therefore only be seen once. The ECGI is an optional parameter, omitting it will allow less constraints on the conditions to see the notification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2977</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2977"/>
		<updated>2020-12-18T17:31:22Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Subscriptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
=== Subscriptions ===&lt;br /&gt;
&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Location Service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MEC013 Location API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User Tracking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE &#039;&#039;10.100.0.1&#039;&#039; as it moves across PoAs &amp;amp; zones:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/userTracking&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when UE &#039;&#039;10.100.0.1&#039;&#039; does the following:&lt;br /&gt;
* Enters a new zone&lt;br /&gt;
* Leaves its current zone&lt;br /&gt;
* Attaches to a different PoA within the same zone&lt;br /&gt;
&lt;br /&gt;
 NOTE: If a UE switches from a PoA in one zone to a PoA in a different zone, then 2 separate notifications are sent, one for leaving the old zone and another for entering a new zone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Traffic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track all UE location changes within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zonalTrafficSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalTraffic&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZonalPresenceNotification&#039;&#039; notification will be sent when any UE does the following:&lt;br /&gt;
* Enters &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Leaves &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
* Attaches to a different PoA within &#039;&#039;zone01&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zonal Status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Track UE number thresholds within &#039;&#039;zone01&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;zoneStatusSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location_notifications/zonalStatus&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;zoneId&amp;quot;: &amp;quot;zone01&amp;quot;,&lt;br /&gt;
     &amp;quot;numberOfUsersAPThreshold&amp;quot;: 2,&lt;br /&gt;
     &amp;quot;numberOfUsersZoneThreshold&amp;quot;: 3&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ZoneStatusNotification&#039;&#039; notification will be sent on every change in UE connection count in &#039;&#039;zone01&#039;&#039; where:&lt;br /&gt;
* Number of UEs attached to a single PoA is greater than or equal to 2&lt;br /&gt;
* Number of UEs in zone is greater than or equal to 3&lt;br /&gt;
&lt;br /&gt;
=== MEC012 RNI API Common Examples ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MEC028 WAI API Common Examples ===&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2976</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2976"/>
		<updated>2020-12-18T14:47:43Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Subscriptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
==== Subscriptions ====&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Location Service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RNI &amp;amp; WAI Subscriptions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The same subscription procedure applies for RNIS and WAIS, with the exception of the resource URL response format. The subscription identifier can be found at the following location:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;_links&amp;quot;: {&lt;br /&gt;
     &amp;quot;self&amp;quot;: {&lt;br /&gt;
       &amp;quot;href&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx123456/rni/v2/subscriptions/1&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2975</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2975"/>
		<updated>2020-12-18T14:37:36Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Subscriptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
==== Subscriptions ====&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response includes the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Location Service Example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx-gh-kev/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
	<entry>
		<id>https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2974</id>
		<title>MEC Sandbox Help</title>
		<link rel="alternate" type="text/html" href="https://mecwiki.etsi.org/index.php?title=MEC_Sandbox_Help&amp;diff=2974"/>
		<updated>2020-12-18T14:31:07Z</updated>

		<summary type="html">&lt;p&gt;Dilallo: /* Subscriptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Platform Concepts =&lt;br /&gt;
MEC Sandbox is an interactive environment that enables users to learn &amp;amp; experiment with ETSI MEC Service APIs. These standardized RESTful APIs are targeted towards MEC application developers to expose the value added services offered by MEC, including real time access to network and context information, as well as location awareness. The design principles for developing the APIs have also been specified in ETSI GS MEC 009, along with http methods, templates, conventions and patterns. The MEC service APIs are available in YAML and JSON format at https://forge.etsi.org, presented via OpenAPI compliant descriptions.&lt;br /&gt;
&lt;br /&gt;
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behavior and capabilities of the Location (MEC013), Radio Network Information (MEC012) and WLAN Information (MEC028) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications.&lt;br /&gt;
&lt;br /&gt;
== Web UI ==&lt;br /&gt;
MEC Sandbox Portal is a single page web application that provides an interactive interface; once signed in, it allows a user to experiment with an individual sandbox.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Home Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The home page provides:&lt;br /&gt;
* A brief description of the platform&lt;br /&gt;
* Links and references to learn more about ETSI MEC&lt;br /&gt;
* Control to:&lt;br /&gt;
** Navigate through the MEC Sandbox pages&lt;br /&gt;
** Open the help menu to get started or access this wiki page&lt;br /&gt;
** Sign in to the platform&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-home.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Sandbox Dashboard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a user signs in, the MEC Sandbox creates the necessary backend resources and opens a user-specific sandbox dashboard that allows to:&lt;br /&gt;
* Deploy pre-defined network scenarios in the city of Monaco&lt;br /&gt;
* Configure terminal devices within the network (add/remove/pause)&lt;br /&gt;
* Experiment with the MEC Service APIs by opening a MEC client directly in the browser&lt;br /&gt;
* Alternatively, experiment MEC Services directly from an external application &#039;&#039;(your own or a third party application)&#039;&#039;&lt;br /&gt;
In both cases, MEC Sandbox APIs respond according to the current state of the network scenario.&lt;br /&gt;
&lt;br /&gt;
More details about the MEC Sandbox UI are provided in the [[#Usage|platform usage]] section of this wiki.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Page-sandbox.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
==== Point of Access (POA) ====&lt;br /&gt;
A point of attachment to access a network; MEC Sandbox networks supports 4G, 5G and WiFi POAs.&lt;br /&gt;
* Each POA has coverage range within which a terminal may attach to the network.&lt;br /&gt;
* The PoA range is represented by a circle and its the range varies depending on the network technology&lt;br /&gt;
* Both the PoAs and their associated range can be shown or hidden by selecting the appropriate layers on the map.&lt;br /&gt;
&lt;br /&gt;
==== User Equipment (UE) / Terminal Device ====&lt;br /&gt;
A end user devices equipped with a wireless radio that allows to connect to a PoA.&lt;br /&gt;
* MEC Sandbox supports three types of UEs; stationary, low-velocity and high-velocity&lt;br /&gt;
** UE types are described in more detail in [[#UE_Types|this]] wiki section.&lt;br /&gt;
* Number of UEs present in a scenario can be configured&lt;br /&gt;
* Each UE has an associated velocity and path that defines how they move on the map; these are fixed in a scenario.&lt;br /&gt;
* UEs have their preferred access network types with their preferred order of connection&lt;br /&gt;
* Preferred connectivity order is (1) WiFi, (2) 5G and (3) 4G&lt;br /&gt;
* The default UE behavior is to remain connected to a POA as long as it is in range unless a higher priority network access becomes available.&lt;br /&gt;
&lt;br /&gt;
==== Zone ====&lt;br /&gt;
A zone is a logical grouping of one or more PoAs, irrespective of their wireless technologies.&lt;br /&gt;
* On the map, zones are represented by using color coding.&lt;br /&gt;
* The definition of zones help structure the network.&lt;br /&gt;
* MEC Location Service (MEC013) can be used to discover zones or UEs present in a zone.&lt;br /&gt;
&lt;br /&gt;
==== Network Scenario ====&lt;br /&gt;
A simulated network of geo-located UEs and POAs that are grouped in Zones.&lt;br /&gt;
* One network scenario can be deployed at a time in a MEC Sandbox instance.&lt;br /&gt;
* At any time a user can terminate a scenario or select a new one without requiring to re-create a new sandbox.&lt;br /&gt;
* While a network scenario is deployed, requests can be sent to the MEC Service APIs which will return a response&lt;br /&gt;
* MEC Services may also generate notifications depending on the subscriptions created by the user&lt;br /&gt;
* Both responses and notifications reflect the state of the network at the moment they were generated&lt;br /&gt;
&lt;br /&gt;
= Network Scenarios =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
MEC Sandbox currently provides three network scenarios with different assortments of technologies.&lt;br /&gt;
These scenarios were designed to simulate an urban environment using a single mobile network operator with combinations of 4G, 5G and WiFi PoAs.&lt;br /&gt;
&lt;br /&gt;
UEs move along their pre-defined path, triggering changes in connectivity and in MEC Service outputs (responses &amp;amp; notifications).&lt;br /&gt;
&lt;br /&gt;
The city of Monaco was chosen as the simulated location as shown on right.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; PoA position and range values are simulated and do not reproduce a real operator deployment in Monaco; they were chosen to optimize scenario coverage and zone transitions for simulation purposes.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |[[File:Monaco-3D-Satellite.png|border|750px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Networks ==&lt;br /&gt;
MEC Sandbox provides the following simulated networks&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G Macro Network ====&lt;br /&gt;
* Contains 10 4G-PoAs grouped into 4 different zones; together, these PoAs cover the entire Monaco area&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G Macro Network by adding 11 WiFi-PoAs distributed throughout the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== 4G-5G-WiFi Macro Network ====&lt;br /&gt;
* Builds on 4G-WiFi Macro Network by adding 19 small cell 5G-PoAs distributed throughout the city&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-wifi.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Network-4g-5g-wifi.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UE Types ==&lt;br /&gt;
UEs are divided into the following categories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Stationary UE ====&lt;br /&gt;
* They have a static geo location&lt;br /&gt;
* They represent smart city IoT connected devices such as street cameras, smart sensors, etc.&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== Low Velocity UE ====&lt;br /&gt;
* They change location relatively slowly&lt;br /&gt;
* They represent leisure cyclists or pedestrians moving through the city&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; padding: 20px;&amp;quot; |&lt;br /&gt;
==== High Velocity UE ====&lt;br /&gt;
* They change location quickly&lt;br /&gt;
* They represent motorized vehicles moving along the main city roads&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-stationary.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left; padding-right: 8px;&amp;quot; |&lt;br /&gt;
[[File:Ue-low-velocity.png|border|395px]]&lt;br /&gt;
| style=&amp;quot;width: 410px; vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Ue-high-velocity.png|border|395px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 NOTE: The number of UEs in a network scenario is dynamically configurable, however the positions and paths are the same for all scenarios.&lt;br /&gt;
&lt;br /&gt;
= MEC Services =&lt;br /&gt;
&lt;br /&gt;
== MEC012 - Radio Network Information Service (RNIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC012 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/02.01.01_60/gs_mec012v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
RNIS provides cellular radio network information to edge applications, such as:&lt;br /&gt;
* Radio network conditions&lt;br /&gt;
* Measurements related to user plane&lt;br /&gt;
* Information about UEs connected to the radio network (context, Radio Access Bearers (RAB))&lt;br /&gt;
* Notification events such as cell change, RAB establishment and RAB release&lt;br /&gt;
MEC Sandbox supports a subset of RNI API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC013 - Location Service ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC013 specification, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
Location Service provides geospatial and network location information to edge applications, such as:&lt;br /&gt;
* Location information related to user and zones&lt;br /&gt;
* Notification events such as user tracking, zonal status or traffic&lt;br /&gt;
MEC Sandbox supports a subset of the Location API endpoints and subscription types; for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
== MEC028 - WLAN Access Information Service (WAIS) ==&lt;br /&gt;
MEC Sandbox supports version v02.01.01 of the MEC028 specifications, available on [https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf ETSI website]&lt;br /&gt;
&lt;br /&gt;
WAIS provides WLAN radio network information to edge applications, such as:&lt;br /&gt;
* Access point conditions&lt;br /&gt;
* Information about terminals connected to the network&lt;br /&gt;
* Notification events such as terminal connectivity&lt;br /&gt;
MEC Sandbox supports a subset of the WAI API endpoints and subscription types. for more details on the supported endpoints access the SwaggerUI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
The following section provides MEC Sandbox usage guidelines.&lt;br /&gt;
&lt;br /&gt;
== Sign In ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The MEC Sandbox home page provides a &#039;&#039;Sign In&#039;&#039; button to initiate a user session.&lt;br /&gt;
When clicked, the user is prompted to authenticate with one of the following external OAuth 2.0 providers:&lt;br /&gt;
* GitHub: Sign in with a public GitHub account&lt;br /&gt;
* GitLab (ETSI): Sign in with an ETSI-On-Line (EOL) GitLab account&lt;br /&gt;
&lt;br /&gt;
To successfully sign in to the MEC Sandbox, the user must have a valid account with one of the above providers,&lt;br /&gt;
must successfully sign in, and must accept an authorization request for access to public profile information.&lt;br /&gt;
Once signed in and after successful backend resource allocation, the user is redirected to the MEC Sandbox dashboard.&lt;br /&gt;
 NOTE: External OAuth provider login and authorization may be seamless if they have already been performed&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Sign-in.PNG|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Sandbox Dashboard ==&lt;br /&gt;
The dashboard is the main screen of the MEC Sandbox; it is divided in 4 main areas that are explained below:&lt;br /&gt;
* Map area: Observe physical assets on the map&lt;br /&gt;
* Configuration area: Select networks and UEs&lt;br /&gt;
* API Console: Investigate MEC API communication&lt;br /&gt;
* Try-it area: Details about accessing MEC Service APIs&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Map Area ====&lt;br /&gt;
Map area allows to observe the location of different assets; it provides the following information and capabilities:&lt;br /&gt;
* Zoom control&lt;br /&gt;
* Layer selection - display or hide assets&lt;br /&gt;
* PoAs&lt;br /&gt;
** Icon shows the type of PoA (4G/5G/WiFi)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** PoAs are color coded according to their zone&lt;br /&gt;
** Circle surrounding the PoA represents the signal range - also color coded to the zone&lt;br /&gt;
* UEs&lt;br /&gt;
** Icon shows UE type (stationary/low/high velocity)&lt;br /&gt;
** Clicking provides details&lt;br /&gt;
** UEs are red when disconnected, blue otherwise&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Map.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Configuration area ====&lt;br /&gt;
Configuration area allows dynamic configuration of the MEC Sandbox; it provides the following capabilities:&lt;br /&gt;
* Network selection - deploy/terminate network scenarios&lt;br /&gt;
* Pause terminal movement - dynamically start/stop UE movement&lt;br /&gt;
* Set the number of terminals - dynamically add/remove UEs by type&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Configuration.png|border|500px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== API Console ====&lt;br /&gt;
API console displays a table of real-time requests and notifications that the MEC Service APIs receive and generate.&lt;br /&gt;
&lt;br /&gt;
The table provides a summary of the communication messages, including type (request/notification), service involved, endpoint, HTTP method, time and response code.&lt;br /&gt;
&lt;br /&gt;
Requests are HTTP messages received by the MEC Service&lt;br /&gt;
* Click on the request line in the table to see the response returned by the MEC Service&lt;br /&gt;
&lt;br /&gt;
Notifications are HTTP message sent by the MEC Service&lt;br /&gt;
* These are generated only if a subscription was created in the MEC Service&lt;br /&gt;
* Click on the notification line in the table to see details about notification and received response&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Api-console.png|border|750px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 40%; min-width: 400px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
==== Try-it area ====&lt;br /&gt;
Try-it area provides information on how to access a specific MEC Service API in the MEC Sandbox; a drop down allows to select the desired MEC API.&lt;br /&gt;
 Note: MEC Services are always running (from MEC Sandbox creation); selecting a MEC API only changes the displayed information in the dashboard&lt;br /&gt;
Try-it in the browser allows to launch a SwaggerUI client for the selected MEC API; from the client a user can send requests to the MEC Services.&lt;br /&gt;
&lt;br /&gt;
Try-it from your MEC application provides the link to use to reach the selected MEC API from an external application.&lt;br /&gt;
 Note: the provided link needs to be provisioned in an application client to access the MEC Service running in the sandbox.&lt;br /&gt;
| style=&amp;quot;width: 60%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Try-it.png|border|500px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Swagger UI ==&lt;br /&gt;
The Swagger UI client is a powerful tool to learn about MEC APIs as it provides curated &amp;amp; browsable information about the API endpoints - but it also serves as an API client allowing to send requests and observe responses.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows Swagger UI for the MEC Location Service.&lt;br /&gt;
* A header provides API name and details with links to related specifications&lt;br /&gt;
* The client is configured to communicate with your own sandbox&lt;br /&gt;
* API endpoints are listed along with their HTTP verb - clicking on an endpoint provides more details&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger1.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows the documentation details available at the endpoint level:&lt;br /&gt;
* A description of the endpoint&lt;br /&gt;
* Parameters that may be required when invoking the endpoint&lt;br /&gt;
* Possible responses that the endpoint may return&lt;br /&gt;
* The &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt; button enables the client mode&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger2.png|border|850px]]&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
The figure on right shows how a request can be sent to the MEC service running in the MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
After clicking &amp;lt;code&amp;gt;Try it out&amp;lt;/code&amp;gt;, the documentation page changes as follows:&lt;br /&gt;
* The parameters area allows to enter values if required; in this example, no parameters are needed&lt;br /&gt;
* An Execute button appears; clicking sends the request to the MEC API&lt;br /&gt;
* An informational window shows the request and parameters sent using the curl command&lt;br /&gt;
** Note that this command can be copied and sent from a Command line terminal&lt;br /&gt;
* The server response area shows the values received from the MEC Service API&lt;br /&gt;
** Responses can be downloaded&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Swagger3.png|border|850px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MEC Application ==&lt;br /&gt;
MEC Application developers can access MEC Services running in the MEC Sandbox using the base path URL provided in the &amp;lt;code&amp;gt;Try-it&amp;lt;/code&amp;gt; area of the Sandbox dashboard. This link routes requests for the selected MEC API to a specific user sandbox.&lt;br /&gt;
&lt;br /&gt;
 NOTE: Any external application or process with HTTP client capabilities and access to the MEC Sandbox can be used to send requests to the MEC Services (for example &#039;&#039;curl&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
MEC applications must use the provided link as a base path for API requests and must append the desired endpoint path. MEC applications must also provide path, query and body parameters when necessary. For more details on the supported endpoint paths and parameters, access the Swagger UI client in a MEC Sandbox.&lt;br /&gt;
&lt;br /&gt;
For notification subscriptions, MEC applications must provide notification URLs where MEC Service notifications should be sent. If a notification URL points to a publicly accessible endpoint, the API Console will show the request and response data and codes; otherwise, the request will fail and the API console will display a 500 Internal error.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This section provides some common usage examples.&lt;br /&gt;
&lt;br /&gt;
==== Subscriptions ====&lt;br /&gt;
The subscription endpoints available in each service are used to register for specific event notifications.&lt;br /&gt;
&lt;br /&gt;
To subscribe for event notifications, a user may use the provided Swagger UI Try it out feature or may directly post a subscription request from a MEC application. In both cases, the subscription request body must contain the following:&lt;br /&gt;
* Notification URL where notifications will be sent&lt;br /&gt;
* Filter criteria to specify which events to register to&lt;br /&gt;
&lt;br /&gt;
A successful subscription response will include the following:&lt;br /&gt;
* Subscription request data&lt;br /&gt;
* Subscription resource URL&lt;br /&gt;
&lt;br /&gt;
The resource URL contains a unique subscription identifier that must be provided when updating or deleting a subscription.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-top: 20px&amp;quot; |&lt;br /&gt;
|+&lt;br /&gt;
| style=&amp;quot;width: 35%; min-width: 300px; vertical-align: top; padding-right: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
For example, to register for user location change events, set the following subscription request body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;, &amp;quot;Leaving&amp;quot;, &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A successful response for the above subscription request creates a new subscription with and ID of &#039;2&#039;, as shows in the following response body:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;userTrackingSubscription&amp;quot;: {&lt;br /&gt;
     &amp;quot;address&amp;quot;: &amp;quot;10.100.0.1&amp;quot;,&lt;br /&gt;
     &amp;quot;callbackReference&amp;quot;: {&lt;br /&gt;
       &amp;quot;notifyURL&amp;quot;: &amp;quot;http://my.callback.com/location-user-tracking/some-id&amp;quot;&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;clientCorrelator&amp;quot;: &amp;quot;0123&amp;quot;,&lt;br /&gt;
     &amp;quot;resourceURL&amp;quot;: &amp;quot;https://try-mec.testfqdn.dev/sbx-gh-kev/location/v2/subscriptions/userTracking/2&amp;quot;,&lt;br /&gt;
     &amp;quot;userEventCriteria&amp;quot;: [&lt;br /&gt;
       &amp;quot;Entering&amp;quot;,&lt;br /&gt;
       &amp;quot;Leaving&amp;quot;,&lt;br /&gt;
       &amp;quot;Transferring&amp;quot;&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 65%; text-align: left;&amp;quot; |&lt;br /&gt;
[[File:Example-subscription.png|border|850px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dilallo</name></author>
	</entry>
</feed>