diff --git a/README.md b/README.md index 3b098500cdd3acdebb94024a09902f066a011723..f5dfe95f8b6ba06792e066461718fa13c87bb023 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ presented via OpenAPI compliant descriptions. 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 behaviour and capabilities of the Location (MEC013), Radio Network Information (MEC012), Traffic Management APIs (MEC015), Device Application Interface (MEC016), -WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer +WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs, V2X Information API (MEC030) service API and MEC Federation Service API (MEC040) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications. Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications. @@ -40,11 +40,11 @@ The following procedure should be used to install a new MEC Sandbox deployment. ### Prerequisites MEC Sandbox has the following prerequisites: -1. MEC Sandbox (AdvantEDGE + MEC Sandbox frontend) VM: +1. MEC Sandbox (etsi-mec-sandbox + etsi-mec-sandbox-frontend) VM: - [Hardware requirements](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-hw/) 1. Long-term Storage (MinIO + Thanos Compactor) VM: - [Hardware requirements](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-hw/) -1. [AdvantEDGE](https://interdigitalinc.github.io/AdvantEDGE/) runtime & development environments on both VMs +1. [etsi-mec-sandbox](https://interdigitalinc.github.io/AdvantEDGE/) runtime & development environments on both VMs - Install [runtime environment](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-runtime/) - Install [development environment](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-dev/) 1. OAuth Applications using external providers @@ -58,6 +58,7 @@ MEC Sandbox has the following prerequisites: - You can also add an application logo if you want users to see one during authentication - Once created, keep note of the OAuth App Client ID & Secret; this secret is only temporarily available on GitHub... keep a copy in a safe place! - If you need to generate a new secret the MEC Sandbox will have to be updated accordingly + - Enable Device Flow to use API driven sandbox - **GitLab:** - gitlab.com User Account --> Settings --> Applications --> Add new application - _Name:_ ETSI MEC Sandbox @@ -66,6 +67,7 @@ MEC Sandbox has the following prerequisites: - _Scopes:_ read_user - **NOTES:** - Once created, keep note of the OAuth App Client ID & Secret + - Enable Device Flow to use API driven sandbox 1. Python Installation - Install Python2: - Ubuntu 18.04: `sudo apt install python-minimal` @@ -74,33 +76,72 @@ MEC Sandbox has the following prerequisites: - Ubuntu 18.04: `sudo apt install python-pip` - Ubuntu 20.04: `sudo apt install python3-pip` - Install Pyyaml: `pip install pyyaml` +1. Host NFS server installation +In order to be deployed properly, MEC 016 service requires that an NFS server was deployed on the host. To achieve it, the followimg steps are required: + +- Install the NFS server +```sh +$ sudo apt-get update +$ sudo apt install nfs-kernel-server nfs-common portmap +``` +- Check that the NFS server is running on the host +```sh +$ sudo systemctl status nfs-server +``` +The outpout looks like: +``` +nfs-server.service - NFS server and services + Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled) + Active: active (exited) since Mon 2024-09-16 09:10:45 CEST; 42s ago + Main PID: 923678 (code=exited, status=0/SUCCESS) + Tasks: 0 (limit: 38358) + Memory: 0B + CGroup: /system.slice/nfs-server.service +``` +- Create the NFS shared folder +```sh +$ sudo mkdir -p /mnt/nfs/mec_sandbox +$ sudo chmod -R 777 /mnt/nfs/ +``` +- Update the /etc/exports file by adding the following line: +```sh +sudo echo '/mnt/nfs/mec_sandbox *(rw,sync,no_subtree_check,no_root_squash,insecure)' > /etc/exports +``` +- Export the NFS shared folder +```sh +$ sudo exportfs -rv +``` +- Check that the NFS shared folder is exported +```sh +$ showmount -e +``` ### Deploy Long-term Storage (MinIO + Thanos Compactor) -1. Clone AdvantEDGE repository: - - Fetch required AdvantEDGE baseline: - - Clone AdvantEDGE repo to the Long-term Storage VM +1. Clone [etsi-mec-sandbox](https://labs.etsi.org/rep/mec/etsi-mec-sandbox) repository: + - Fetch required etsi-mec-sandbox baseline: + - Clone etsi-mec-sandbox repo to the Long-term Storage VM - Place repo in home folder - - Checkout the required AdvantEDGE version tag + - Checkout the required etsi-mec-sandbox version tag 1. Configure Long-term Storage: - Configure object store: - - `vi ~/AdvantEDGE/config/secrets.yaml` + - `vi ~/etsi-mec-sandbox/config/secrets.yaml` - Set minio _accessKey_ to object store access key value (minimum 3 chars) - Set minio _secretKey_ to object store secret key value (minimum 8 chars) - - `vi ~/AdvantEDGE/config/objstore-thanos.yaml` + - `vi ~/etsi-mec-sandbox/config/objstore-thanos.yaml` - Set _endpoint_ to VM FQDN - **NOTE:** Make sure _/etc/hosts_ file contains entry for VM FQDN that points to VM private IP address - Set _access\_key_ to object store access key value - Set _secret\_key_ to object store secret key value - Configure deployment: - - `vi ~/AdvantEDGE/config/long-term-storage-repocfg.yaml` + - `vi ~/etsi-mec-sandbox/config/long-term-storage-repocfg.yaml` - Set uid & gid - Set host name to FQDN - Set Thanos compactor retention times - Overwrite repocfg file with provided long-term storage repocfg: - - `cp ~/AdvantEDGE/config/long-term-storage-repocfg.yaml ~/AdvantEDGE/.meepctl-repocfg.yaml` + - `cp ~/etsi-mec-sandbox/config/long-term-storage-repocfg.yaml ~/etsi-mec-sandbox/.meepctl-repocfg.yaml` - Configure MinIO helm chart: - - `vi ~/AdvantEDGE/charts/minio/values.yaml` + - `vi ~/etsi-mec-sandbox/charts/minio/values.yaml` - _securityContext_: - Set _runAsUser_ to uid - Set _runAsGroup_ to gid @@ -109,16 +150,16 @@ MEC Sandbox has the following prerequisites: - MinIO: - Install Python as described in the prerequisites - Create secrets: - - Ubuntu 18.04: `python ~/AdvantEDGE/config/configure-secrets.py set ~/AdvantEDGE/config/secrets.yaml` - - Ubuntu 20.04: `python3 ~/AdvantEDGE/config/configure-secrets.py set ~/AdvantEDGE/config/secrets.yaml` + - Ubuntu 18.04: `python ~/etsi-mec-sandbox/config/configure-secrets.py set ~/etsi-mec-sandbox/config/secrets.yaml` + - Ubuntu 20.04: `python3 ~/etsi-mec-sandbox/config/configure-secrets.py set ~/etsi-mec-sandbox/config/secrets.yaml` - Thanos: - - `~/AdvantEDGE/config/configure-objstore-secrets.sh` + - `~/etsi-mec-sandbox/config/configure-objstore-secrets.sh` - **NOTE:** Once the kubernetes secrets have been created, it is recommended to remove the config files containing the clear-text secrets 1. Deploy MinIO & Thanos Compactor: - Build & Configure meepctl: - - `~/AdvantEDGE/go-apps/meepctl/install.sh` + - `~/etsi-mec-sandbox/go-apps/meepctl/install.sh` - `meepctl config ip ` - - `meepctl config gitdir ` + - `meepctl config gitdir ` - Deploy dependency pods: - `meepctl deploy dep` - Deploy Core pods: @@ -132,32 +173,32 @@ MEC Sandbox has the following prerequisites: - thanos - thanos-archive -### Build & Deploy MEC Sandbox (AdvantEDGE + MEC Sandbox Frontend) +### Build & Deploy MEC Sandbox (etsi-mec-sandbox + etsi-mec-sandbox-frontend) -1. Clone MEC Sandbox & AdvantEDGE repositories: - - Fetch required MEC Sandbox baseline: +1. Clone [etsi-mec-sandbox-frontend](https://labs.etsi.org/rep/mec/etsi-mec-sandbox-frontend) & [etsi-mec-sandbox](https://labs.etsi.org/rep/mec/etsi-mec-sandbox) repositories: + - Fetch required etsi-mec-sandbox-frontend: - Clone this repo to the MEC Sandbox deployment VM - Place repo in home folder - - Fetch required AdvantEDGE baseline: - - Clone AdvantEDGE repo to the MEC Sandbox deployment VM + - Fetch required etsi-mec-sandbox baseline: + - Clone etsi-mec-sandbox repo to the MEC Sandbox deployment VM - Place repo in home folder - - Checkout the required AdvantEDGE version tag + - Checkout the required etsi-mec-sandbox version tag 1. Configure MEC Sandbox: - Configure object store: - - `vi ~/mec-sandbox/config/objstore-thanos.yaml` and `vi ~/mec-sandbox/config/objstore-thanos-archive.yaml` + - `vi ~/etsi-mec-sandbox-frontend/config/objstore-thanos.yaml` and `vi ~/etsi-mec-sandbox-frontend/config/objstore-thanos-archive.yaml` - Set _endpoint_ to long-term storage VM FQDN - **NOTE:** Make sure _/etc/hosts_ file contains entry for VM FQDN that points to VM private IP address (if on same local network) - Set _access\_key_ to object store access key value - Set _secret\_key_ to object store secret key value - - `vi ~/mec-sandbox/config/objstore-influx.cfg` + - `vi ~/etsi-mec-sandbox-frontend/config/objstore-influx.cfg` - Set _aws\_access\_key\_id_ to object store access key value - Set _aws\_secret\_access\_key_ to object store secret key value - Configure session & OAuth secrets: - - `vi ~/mec-sandbox/config/secrets.yaml` + - `vi ~/etsi-mec-sandbox-frontend/config/secrets.yaml` - Set a unique session encryption key - Set the OAuth provider client ID & secrets using the values from the OAuth Applications - Configure deployment: - - `vi ~/mec-sandbox/config/.meepctl-repocfg.yaml` + - `vi ~/etsi-mec-sandbox-frontend/config/.meepctl-repocfg.yaml` - Set Prometheus external labels - **NOTE:** This uniquely identifies Prometheus data sources in the long-term storage data buckets - Configure Alert Manager slack channel webhook: @@ -172,33 +213,35 @@ MEC Sandbox has the following prerequisites: - Copy the `Webhook URL` - **NOTE:** There should be a message in the selected slack channel indicating that an incoming webhook has be added - Set webhook url in Prometheus values override: - - `vi ~/mec-sandbox/config/values/meep-prometheus.yaml` + - `vi ~/etsi-mec-sandbox-frontend/config/values/meep-prometheus.yaml` - Set `slack_api_url` to your slack channel webhook url - Set `channel` to your slack channel 1. Build & Deploy STF Frontend: - SSH to MEC Sandbox deployment VM - Build STF Frontend: - - `cd ~/mec-sandbox` + - `cd ~/etsi-mec-sandbox-frontend` - `./build.sh` - Deploy STF Frontend & Configuration files: - `./deploy.sh` - **NOTE:** This updates the `~/.meep/user/` folder with the user frontend, sandbox swagger UI, and user chart values.yaml overrides - - **NOTE:** This also copies the AdvantEDGE configuration files to their respective locations in your local AdvantEDGE clone `~/AdvantEDGE/`. Running `git status` in your AdvantEDGE clone will list the updated (or new) files. + - **NOTE:** This also copies the etsi-mec-sandbox configuration files to their respective locations in your local etsi-mec-sandbox clone `~/etsi-mec-sandbox/`. Running `git status` in your etsi-mec-sandboxE clone will list the updated (or new) files. 1. Create Secrets: - Session & OAuth: - Install Python as described in the prerequisites - Create secrets: - - Ubuntu 18.04: `python ~/AdvantEDGE/config/configure-secrets.py set ~/AdvantEDGE/config/secrets.yaml` - - Ubuntu 20.04: `python3 ~/AdvantEDGE/config/configure-secrets.py set ~/AdvantEDGE/config/secrets.yaml` + - Ubuntu 18.04: `python ~/etsi-mec-sandbox/config/configure-secrets.py set ~/etsi-mec-sandbox/config/secrets.yaml` + - Ubuntu 20.04: `python3 ~/etsi-mec-sandbox/config/configure-secrets.py set ~/etsi-mec-sandbox/config/secrets.yaml` - Object Store (Thanos & Influx): - - `~/AdvantEDGE/config/configure-objstore-secrets.sh` + - `~/etsi-mec-sandbox/config/configure-objstore-secrets.sh` - **NOTE:** Once the kubernetes secrets have been created, it is recommended to remove the config files containing the clear-text secrets -1. Build & Deploy AdvantEDGE: +1. Build & Deploy Sandbox: - For more details see [AdvantEDGE Deployment Workflow](https://interdigitalinc.github.io/AdvantEDGE/docs/platform-mgmt/mgmt-workflow/) + - Build demo4 + - `~/etsi-mec-sandbox/examples/demo4-ue/build-demo4-ue.sh` - Build and Configure meepctl: - - `~/AdvantEDGE/go-apps/meepctl/install.sh` + - `~/etsi-mec-sandbox/go-apps/meepctl/install.sh` - `meepctl config ip ` - - `meepctl config gitdir ` + - `meepctl config gitdir ` - Deploy dependency pods: - `meepctl deploy dep` - Build & Dockerize: @@ -238,7 +281,7 @@ If necessary, configure the MEC Sandbox scenarios as follows: ## Upgrade MEC Sandbox The following procedure should be used to upgrade a running MEC Sandbox deployment. -1. Stop AdvantEDGE +1. Stop MEC Sandbox - Delete user sandboxes - Using AdvantEDGE frontend: - Login as admin @ https://try-mec.etsi.org @@ -253,27 +296,27 @@ The following procedure should be used to upgrade a running MEC Sandbox deployme 1. Pull latest updates from MEC Sandbox & AdvantEDGE repositories 1. Configure MEC Sandbox deployment: - Configure deployment: - - `vi ~/mec-sandbox/config/.meepctl-repocfg.yaml` + - `vi ~/etsi-mec-sandbox-frontend/config/.meepctl-repocfg.yaml` - Set Prometheus external labels - **NOTE:** This uniquely identifies Prometheus data sources in the long-term storage data buckets - Configure Alert Manager slack channel webhook: - Set webhook url in Prometheus values override: - - `vi ~/mec-sandbox/config/values/meep-prometheus.yaml` + - `vi ~/etsi-mec-sandbox-frontend/config/values/meep-prometheus.yaml` - Set `slack_api_url` to your slack channel webhook url - Set `channel` to your slack channel 1. Build & Deploy STF Frontend: - SSH to MEC Sandbox deployment VM - Build STF Frontend: - - `cd ~/mec-sandbox` + - `cd ~/etsi-mec-sandbox-frontend` - `./build.sh` - Deploy STF Frontend & Configuration files: - `./deploy.sh` - **NOTE:** This updates the `~/.meep/user/` folder with the user frontend, sandbox swagger UI, and user chart values.yaml overrides - - **NOTE:** This also copies the AdvantEDGE configuration files to their respective locations in your local AdvantEDGE clone `~/AdvantEDGE/`. Running `git status` in your AdvantEDGE clone will list the updated (or new) files. -1. Build & Deploy AdvantEDGE: + - **NOTE:** This also copies the etsi-mec-sandbox configuration files to their respective locations in your local AdvantEDGE clone `~/etsi-mec-sandbox/`. Running `git status` in your AdvantEDGE clone will list the updated (or new) files. +1. Build & Deploy MEC Sandbox: - For more details see [AdvantEDGE Deployment Workflow](https://interdigitalinc.github.io/AdvantEDGE/docs/platform-mgmt/mgmt-workflow/) - Build meepctl: - - `~/AdvantEDGE/go-apps/meepctl/install.sh` + - `~/etsi-mec-sandbox/go-apps/meepctl/install.sh` - Deploy dependency pods: - `meepctl deploy dep` - Build & Dockerize: diff --git a/build.sh b/build.sh index da9fc7a2a2203c47f09508186c2c7b4eff88b10e..2f69bca291d469f6d8ce402c1bf35ccefd510d7b 100755 --- a/build.sh +++ b/build.sh @@ -4,7 +4,7 @@ SCRIPT=$(readlink -f "$0") BASEDIR=$(dirname "$SCRIPT") -MEEPDIR=~/AdvantEDGE +MEEPDIR=~/etsi-mec-sandbox install_package() { echo "" diff --git a/config/.meepctl-repocfg.yaml b/config/.meepctl-repocfg.yaml index cb34c8a35e4bfac08fea3318102649592c4778cb..4fe537174cb2906e1666290c0b83c7a38bb92806 100644 --- a/config/.meepctl-repocfg.yaml +++ b/config/.meepctl-repocfg.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2022 The AdvantEDGE Authors +_# Copyright (c) 2024 The AdvantEDGE Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,9 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -version: 1.9.0 +version: 1.10.0 repo: - name: AdvantEDGE + name: etsi-mec-sandbox #------------------------------ # Deployment @@ -23,9 +23,9 @@ repo: # permissions permissions: # user id - uid: 1000 + uid: 1001 # group id - gid: 1000 + gid: 1001 # user supplied resources user: @@ -67,7 +67,13 @@ repo: # GitHub OAuth provider config github: # enable GitHub OAuth - enabled: truee + enabled: true + # device authorization url for mec-sandbox-api + device-auth-url: https://github.com/login/device/code + # authorization url for mec-sandbox-api + device-poll-url: https://github.com/login/oauth/access_token + # device polling url + poll-url: https://github.com/login/oauth/access_token # authorization url auth-url: https://github.com/login/oauth/authorize # access token url @@ -96,9 +102,9 @@ repo: # Influx configuration influx: # enable influx data backups - enabled: true + enabled: false # object store url - url: https://metrics.try-mec.etsi.org/ + url: https://metrics.mec-platform.etsi.org/ # object store configuration secret secret: meep-influx-objstore-config # Number of days to retain daily data backups @@ -114,7 +120,7 @@ repo: # prometheus environment (dev|prod) promenv: prod # unique deployment identifier - replica: platform-ip + replica: 172.29.10.56 # Thanos long-term storage thanos: # enable Thanos @@ -284,6 +290,7 @@ repo: core-pods: - meep-mon-engine - meep-platform-ctrl + - meep-sandbox-api - meep-virt-engine - meep-webhook # list of sandbox pods to monitor @@ -301,6 +308,7 @@ repo: # - meep-tc-engine # - meep-app-enablement # - meep-vis + # - meep-federation # location of API specifications api: - name: 'AdvantEDGE Monitoring Engine REST API' @@ -344,6 +352,39 @@ repo: swagger: js-apps/meep-swagger-ui # location of AdvantEDGE frontend frontend: bin/meep-frontend + meep-sandbox-api: + # location of source code + src: go-apps/meep-sandbox-api + # location of binary + bin: bin/meep-sandbox-api + # location of deployment chart + chart: charts/meep-sandbox-api + # user supplied value file located @ .meep/user/values (use below file name) + chart-user-values: meep-sandbox-api.yaml + # enable meepctl build + build: true + # enable meepctl dockerize + dockerize: true + # enable meepctl deploy/delete + deploy: true + # supports code coverage measurement when built in codecov mode + codecov: true + # supports linting + lint: true + # location of API specifications + api: + - name: 'AdvantEDGE Platform Controller REST API' + file: go-apps/meep-sandbox-api/api/swagger.yaml + # location of user supplied API specifications + user-api: + # resources available to docker container image + docker-data: + # location of entry script + 'entrypoint.sh': go-apps/meep-sandbox-api/entrypoint.sh + # location of Swagger UI + #swagger: js-apps/meep-swagger-ui + # location of AdvantEDGE frontend + #frontend: bin/meep-frontend meep-virt-engine: # location of source code src: go-apps/meep-virt-engine @@ -382,6 +423,7 @@ repo: meep-app-enablement: charts/meep-app-enablement meep-virt-chart-templates: charts/meep-virt-chart-templates meep-vis: charts/meep-vis + meep-federation: charts/meep-federation # list of sandbox specific pods sandbox-pods: - meep-gis-engine @@ -397,6 +439,7 @@ repo: # - meep-tc-engine # - meep-app-enablement # - meep-vis + # - meep-federation meep-webhook: # location of source code src: go-apps/meep-webhook @@ -514,12 +557,16 @@ repo: file: go-apps/meep-app-enablement/api/app-support/swagger.yaml - name: 'AdvantEDGE MEC Service Management REST API' file: go-apps/meep-app-enablement/api/service-mgmt/swagger.yaml + - name: 'AdvantEDGE MEC Service management realized by CAPIF APIs' + file: go-apps/meep-app-enablement/api/capif-mgmt/swagger.yaml # location of user supplied API specifications user-api: - name: 'MEC Application Support API' file: config/api/app-support.yaml - name: 'MEC Service Management API' file: config/api/service-mgmt.yaml + - name: 'MEC CAPIF Management API' + file: config/api/capif-mgmt.yaml # resources available to docker container image docker-data: # location of entry script @@ -895,7 +942,57 @@ repo: 'entrypoint.sh': go-apps/meep-vis/entrypoint.sh # location of grid map file 'grid_map.yaml': go-packages/meep-vis-traffic-mgr/grid_map.yaml - + meep-federation: + # location of source code + src: go-apps/meep-federation + # location of binary + bin: bin/meep-federation + # location of deployment chart + chart: charts/meep-federation + # user supplied value file located @ .meep/user/values (use below file name) + chart-user-values: meep-federation.yaml + # extra build flags + build-flags: + - -mod=vendor + # enable meepctl build + build: true + # enable meepctl dockerize + dockerize: true + # enable meepctl deploy/delete + deploy: true + # supports code coverage measurement when built in codecov mode + codecov: true + # supports linting + lint: true + # location of API specifications + api: + - name: 'AdvantEDGE Federation Service REST API' + file: go-apps/meep-federation/api/swagger.yaml + # location of user supplied API specifications + user-api: + - name: 'Federation Service REST API' + file: config/api/fed-api.yaml + # resources available to docker container image + docker-data: + # location of entry script + 'entrypoint.sh': go-apps/meep-federation/entrypoint.sh + meep-mosquitto: + # location of source code + src: go-apps/meep-mosquitto + bin: bin/meep-mosquitto + # enable meepctl build + build: false + # enable meepctl dockerize + dockerize: true + # enable meepctl deploy/delete + deploy: false + # supports code coverage measurement when built in codecov mode + codecov: false + # supports linting + lint: false + docker-data: + 'mosquitto.conf': go-apps/meep-mosquitto/mosquitto.conf + 'listener.conf': go-apps/meep-mosquitto/listener.conf #------------------------------ # Dependencies #------------------------------ @@ -1196,6 +1293,11 @@ repo: src: go-packages/meep-rnis-client # supports linting lint: false + meep-federation-client: + # location of source code + src: go-packages/meep-federation-client + # supports linting + lint: false meep-sandbox-ctrl-client: # location of source code src: go-packages/meep-sandbox-ctrl-client @@ -1211,6 +1313,11 @@ repo: src: go-packages/meep-service-mgmt-client # supports linting lint: false + meep-capif-mgmt-client: + # location of source code + src: go-packages/meep-capif-mgmt-client + # supports linting + lint: false meep-sessions: # location of source code src: go-packages/meep-sessions @@ -1236,6 +1343,11 @@ repo: src: go-packages/meep-dai-client # supports linting lint: false + meep-dai-mgr: + # location of source code + src: go-packages/meep-dai-mgr + # supports linting + lint: false meep-wais-client: # location of source code src: go-packages/meep-wais-client @@ -1246,6 +1358,11 @@ repo: src: go-packages/meep-vis-client # supports linting lint: false + meep-federation-mgr: + # location of source code + src: go-packages/meep-federation-mgr + # supports linting + lint: false meep-vis-traffic-mgr: # location of source code src: go-packages/meep-vis-traffic-mgr @@ -1289,6 +1406,11 @@ repo: src: js-packages/meep-platform-ctrl-client # supports linting lint: false + meep-sandbox-api-client: + # location of source code + src: go-packages/meep-sandbox-api-client + # supports linting + lint: false meep-sandbox-ctrl-client: # location of source code src: js-packages/meep-sandbox-ctrl-client diff --git a/config/api/ams-api.yaml b/config/api/ams-api.yaml index 34c99b6e10cbdd7012abecf291f8c266e725354e..aead8b5c6abea47429e5525a83edbec7f8d426b4 100644 --- a/config/api/ams-api.yaml +++ b/config/api/ams-api.yaml @@ -1,10 +1,10 @@ openapi: 3.0.0 info: title: 'ETSI GS MEC 021 Application Mobility Service API' - version: 2.2.1 + version: 3.1.1 description: 'ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. -

**Note**
MEC Sandbox supports a subset of AMS API endpoints; complete details on AMS API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.02.01_60/gs_mec021v020201p.pdf)' +

**Note**
MEC Sandbox supports a subset of AMS API endpoints; complete details on AMS API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/03.01.01_60/gs_mec021v030101p.pdf)' license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' @@ -13,8 +13,8 @@ info: email: cti_support@etsi.org url: https://forge.etsi.org/rep/mec/gs021-amsi-api externalDocs: - description: 'ETSI GS MEC 021 Application Mobility Service API, v2.2.1' - url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.02.01_60/gs_mec021v020201p.pdf' + description: 'ETSI GS MEC 021 Application Mobility Service API, v3.1.1' + url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/03.01.01_60/gs_mec021v030101p.pdf' servers: - url: 'https://localhost/sandboxname/amsi/v1' tags: @@ -39,7 +39,7 @@ paths: explode: true schema: type: string - - name: all_fields + - name: All_fields in: query description: Include all complex attributes in the response. required: false @@ -47,7 +47,7 @@ paths: explode: true schema: type: string - - name: fields + - name: Fields in: query description: Complex attributes to be included into the response. See clause @@ -57,7 +57,7 @@ paths: explode: true schema: type: string - - name: exclude_fields + - name: Exclude_fields in: query description: Complex attributes to be excluded from the response.See clause @@ -67,7 +67,7 @@ paths: explode: true schema: type: string - - name: exclude_default + - name: Exclude_default in: query description: Indicates to exclude the following complex attributes from the @@ -147,46 +147,44 @@ paths: - name: filter in: query description: - Attribute-based filtering parameters according to ETSI GS MEC - 011 + Attribute-based filtering parameters, according to ETSI GS MEC 009, use the format (op,attr,value), + e.g., (eq, appMobilityServiceId, value) or (gt, serviceConsumerId/appInstanceId, value) required: false style: form explode: true schema: type: string - - name: all_fields + - name: All_fields in: query - description: Include all complex attributes in the response. + description: Include all complex attributes in the response.e.g., All_Fields. required: false style: form explode: true schema: type: string - - name: fields + - name: Fields in: query description: - Complex attributes to be included into the response. See clause - 6.18 in ETSI GS MEC 011 + Complex attributes to be included in the response (see Clause 6.18 in ETSI GS MEC 009), e.g., att or att/subatt. required: false style: form explode: true schema: type: string - - name: exclude_fields + - name: Exclude_fields in: query description: - Complex attributes to be excluded from the response.See clause - 6.18 in ETSI GS MEC 011 + Complex attributes to be excluded in the response (see Clause 6.18 in ETSI GS MEC 009), e.g., att or att/subatt. required: false style: form explode: true schema: type: string - - name: exclude_default + - name: Exclude_default in: query description: Indicates to exclude the following complex attributes from the - response See clause 6.18 in ETSI GS MEC 011 for details. + response (See clause 6.18 in ETSI GS MEC 009 for details). required: false style: form explode: true diff --git a/config/api/app-support.yaml b/config/api/app-support.yaml index f19f1c90430a3f848ed00b35359c91c644cd7440..7a14138529991288dbfe3988d0c0a018738ea9e4 100644 --- a/config/api/app-support.yaml +++ b/config/api/app-support.yaml @@ -1,16 +1,14 @@ -openapi: 3.0.0 -servers: - - url: 'https://localhost/sandboxname/mec_app_support/v1' +openapi: 3.0.2 info: title: AdvantEDGE MEC Application Support API - version: 2.2.1 - description: - "MEC Application Support Service is AdvantEDGE's implementation of - [ETSI MEC ISG MEC011 Application Enablement API](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf) -

[Copyright (c) ETSI 2017](https://forge.etsi.org/etsi-forge-copyright-notice.txt) -

**Micro-service**
[meep-app-enablement](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-app-enablement/server/app-support) -

**Type & Usage**
Edge Service used by edge applications that want to get information about applications in the network -

**Note**
AdvantEDGE supports a selected subset of Application Support API endpoints (see below)." + version: 3.1.1 + description: "MEC Application Support Service is AdvantEDGE's implementation of\ + \ [ETSI MEC ISG MEC011 Application Enablement API](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf)\ + \

[Copyright (c) ETSI 2024](https://forge.etsi.org/etsi-forge-copyright-notice.txt)\ + \

**Micro-service**
[meep-app-enablement](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-app-enablement/server/app-support)\ + \

**Type & Usage**
Edge Service used by edge applications that want to get\ + \ information about applications in the network

**Note**
AdvantEDGE supports\ + \ a selected subset of Application Support API endpoints (see below)." license: name: Apache 2.0 url: 'https://github.com/InterDigitalInc/AdvantEDGE/blob/master/LICENSE' @@ -18,73 +16,117 @@ info: name: InterDigital AdvantEDGE Support email: AdvantEDGE@InterDigital.com externalDocs: - description: 'ETSI GS MEC011 Application Enablement API, V2.2.1' - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf -security: - - {} + description: 'ETSI GS MEC011 Application Enablement API, V3.1.1' + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf +servers: + - url: 'https://localhost/sandboxname/mec_app_support/v2' tags: - name: mec_app_support - name: unsupported + - name: Service Provisioning, EEC Registration, and EAS Discovery - name: callbacks paths: /applications/{appInstanceId}/traffic_rules: get: tags: - unsupported - description: - This method retrieves information about all the traffic rules associated - with a MEC application instance. + summary: Retrieve information about a list of mecTrafficRule resources for an application instance + description: >- + This method retrieves information about all the traffic rules associated with a MEC application instance. operationId: ApplicationsTrafficRules_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing an array of the + TrafficRules is returned. + headers: {} content: application/json: schema: type: array - example: - - trafficRuleId: TrafficRule123 - serName: ExampleService - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - - 192.127.4.100/32 - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface0: null - interfaceType: IP - dstIpAddress: 20.1.1.1 - - dstInterface1: null - interfaceType: IP - dstIpAddress: 20.1.1.2 - state: ACTIVE items: $ref: '#/components/schemas/TrafficRule' - x-content-type: application/json + description: '' + example: + - - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE + example: + TrafficRules: + value: + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -94,17 +136,18 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -113,23 +156,23 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/traffic_rules/{trafficRuleId}: get: tags: - unsupported - description: - This method retrieves information about all the traffic rules associated - with a MEC application instance. + summary: Retrieve information about a mecTrafficRule resource + description: >- + This method retrieves information about all the traffic rules associated with a MEC application instance. operationId: ApplicationsTrafficRule_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: trafficRuleId @@ -137,14 +180,13 @@ paths: description: Represents a traffic rule. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing the TrafficRules is returned. + headers: {} content: application/json: schema: @@ -153,27 +195,30 @@ paths: TrafficRule: value: trafficRuleId: TrafficRule123 - serName: ExampleService filterType: FLOW priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: null + - dstInterface: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -183,17 +228,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -202,22 +247,22 @@ paths: schema: type: object description: Empty schema + deprecated: false put: tags: - unsupported - description: - This method retrieves information about all the traffic rules associated - with a MEC application instance. + summary: Update the information about a mecTrafficRule resource + description: >- + This method retrieves information about all the traffic rules associated with a MEC application instance. operationId: ApplicationsTrafficRule_PUT parameters: - name: appInstanceId in: path - description: + description: >- Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: trafficRuleId @@ -225,11 +270,11 @@ paths: description: Represents a traffic rule. required: true style: simple - explode: false schema: type: string requestBody: - description: One or more updated attributes that are allowed to be changed + description: >- + One or more updated attributes that are allowed to be changed are included in the TrafficRule data structure in the message content of the request. content: application/json: schema: @@ -237,9 +282,9 @@ paths: required: true responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing data type describing the updated TrafficRule is returned. + headers: {} content: application/json: schema: @@ -253,22 +298,26 @@ paths: priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - dstInterface0: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -278,17 +327,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -298,9 +347,9 @@ paths: type: object description: Empty schema '412': - description: - Precondition Failed. It is used when a condition has failed - during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} content: application/problem+json: schema: @@ -309,48 +358,69 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/dns_rules: get: tags: - unsupported - description: - This method retrieves information about all the DNS rules associated - with a MEC application instance. + summary: Retrieve information about a list of mecDnsRule resources for an application instance + description: >- + This method retrieves information about all the DNS rules associated with a MEC application instance. operationId: ApplicationsDnsRules_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing an array of the DnsRules is returned. + headers: {} content: application/json: schema: type: array - example: - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE items: $ref: '#/components/schemas/DnsRule' - x-content-type: application/json + description: '' + example: + - - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE + example: + DnsRules: + value: + - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -360,17 +430,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -379,23 +449,23 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/dns_rules/{dnsRuleId}: get: tags: - unsupported - description: - This method retrieves information about a DNS rule associated with - a MEC application instance. + summary: Retrieve information about a mecDnsRule resource + description: >- + This method retrieves information about a DNS rule associated with a MEC application instance. operationId: ApplicationsDnsRule_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: dnsRuleId @@ -403,14 +473,13 @@ paths: description: Represents a DNS rule. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing the DnsRules is returned. + headers: {} content: application/json: schema: @@ -425,9 +494,9 @@ paths: ttl: 300 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -437,17 +506,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -456,20 +525,20 @@ paths: schema: type: object description: Empty schema + deprecated: false put: tags: - unsupported - description: This method activates, de-activates or updates a traffic rule. + summary: Update the information about a mecDnsRule resource + description: 'This method activates, de-activates or updates a traffic rule.' operationId: ApplicationsDnsRule_PUT parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: dnsRuleId @@ -477,11 +546,10 @@ paths: description: Represents a DNS rule. required: true style: simple - explode: false schema: type: string requestBody: - description: The updated state is included in the entity body of the request. + description: The updated "state" is included in the message content of the request. content: application/json: schema: @@ -489,14 +557,14 @@ paths: required: true responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing data type describing the updated DnsRule is returned. + headers: {} content: application/json: schema: $ref: '#/components/schemas/DnsRule' - example: + examples: DnsRule: value: dnsRuleId: DnsRule1 @@ -506,9 +574,9 @@ paths: ttl: 300 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -518,17 +586,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -538,9 +606,9 @@ paths: type: object description: Empty schema '412': - description: - Precondition Failed. It is used when a condition has failed - during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} content: application/problem+json: schema: @@ -549,39 +617,38 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/subscriptions: get: tags: - mec_app_support - description: - The GET method may be used to request information about all subscriptions - for this requestor. Upon success, the response contains entity body with all - the subscriptions for the requestor. + summary: Retrieve information about a list of mecAppSupportSubscription resources for this subscriber + description: >- + The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains message content with all the subscriptions for the requestor. operationId: ApplicationsSubscriptions_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string responses: '200': - description: - Upon success, a response body containing the list of links - to the requested subscriptions is returned. + description: >- + Upon success, a response message content containing the list of links to the requested subscriptions is returned. + headers: {} content: application/json: schema: $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -591,17 +658,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -610,29 +677,26 @@ paths: schema: type: object description: Empty schema + deprecated: false post: tags: - mec_app_support - description: - The POST method may be used to create a new subscription. One example - use case is to create a new subscription to the MEC service availability notifications. - Upon success, the response contains entity body describing the created subscription. + summary: Create a mecAppSupportSubscription resource + description: >- + The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains message content describing the created subscription. operationId: ApplicationsSubscriptions_POST parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string requestBody: - description: - Entity body in the request contains a subscription to the MEC - application termination notifications that is to be created. + description: >- + Message content in the request contains a subscription to the MEC application termination notifications that is to be created. content: application/json: schema: @@ -640,24 +704,24 @@ paths: required: true responses: '201': - description: - Entity body in the request contains a subscription to the MEC - service availability notifications that is to be created. + description: >- + Entity body in the request contains a subscription to the MEC service availability notifications that is to be created. headers: location: description: The resource URI of the created resource - style: simple - schema: - type: string - format: uri + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -667,17 +731,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -686,65 +750,62 @@ paths: schema: type: object description: Empty schema + deprecated: false callbacks: AppTerminationNotification: '{$request.body#/callbackUri}': post: + description: >- + Represents the information that the MEP notifies the subscribed application instance about the corresponding application instance termination/stop' + operationId: AppTerminationNotification_POST tags: - callbacks - description: - Represents the information that the MEP notifies the subscribed - application instance about the corresponding application instance - termination/stop' - operationId: AppTerminationNotification_POST + summary: Create callback requestBody: $ref: '#/components/requestBodies/AppTerminationNotification' responses: '200': - description: - Expected responses from callback consumer, if it accepts - the callback + description: >- + Expected responses from callback consumer, if it accepts the callback + parameters: [] /applications/{appInstanceId}/subscriptions/{subscriptionId}: get: tags: - mec_app_support - description: - The GET method requests information about a subscription for this - requestor. Upon success, the response contains entity body with the subscription - for the requestor. + summary: Retrieve information about a mecAppSupportSubscription resource for this subscriber + description: >- + The GET method requests information about a subscription for this requestor. Upon success, the response contains message content with the subscription for the requestor. operationId: ApplicationsSubscription_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: subscriptionId in: path - description: Represents a subscription to the notifications from the MEC platform. + description: >- + Represents a subscription to the notifications from the MEC platform. required: true style: simple - explode: false schema: type: string responses: '200': - description: - Upon success, a response body containing the requested subscription - is returned. + description: >- + Upon success, a response message content containing the requested subscription is returned. + headers: {} content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -754,17 +815,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -773,49 +834,49 @@ paths: schema: type: object description: Empty schema + deprecated: false delete: tags: - mec_app_support - description: - This method deletes a mecAppSuptApiSubscription. This method is - typically used in "Unsubscribing from service availability event notifications" - procedure. + summary: Delete a mecAppSupportSubscription resource + description: >- + This method deletes a mecAppSuptApiSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure. operationId: ApplicationsSubscription_DELETE parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: subscriptionId in: path - description: Represents a subscription to the notifications from the MEC platform. + description: >- + Represents a subscription to the notifications from the MEC platform. required: true style: simple - explode: false schema: type: string responses: '204': description: No Content + headers: {} content: {} '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -824,26 +885,28 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/confirm_termination: post: tags: - mec_app_support - description: - This method is used to confirm the application level termination of - an application instance. + summary: Confirm the application level termination of an App instance + description: >- + This method is used to confirm the application level termination of an application instance. operationId: ApplicationsConfirmTermination_POST parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string requestBody: + description: >- + Message content in the request contains the operational action the application instance is responding to. content: application/json: schema: @@ -851,12 +914,14 @@ paths: required: false responses: '204': - description: No Content + description: >- + No Content. The request is acknowledged. The response message content shall be empty. + headers: {} content: {} '401': - description: - Unauthorized. It is used when the client did not submit the - appropriate credentials. + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} content: application/problem+json: schema: @@ -866,17 +931,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -886,10 +951,9 @@ paths: type: object description: Empty schema '409': - description: - Conflict. The operation cannot be executed currently, due to - a conflict with the state of the resource. Typically, this is because - the application instance resource is in NOT_INSTANTIATED state. + description: >- + Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + headers: {} content: application/problem+json: schema: @@ -900,6 +964,7 @@ paths: description: Empty schema '429': description: Too Many Requests. It is used when a rate limiter has triggered. + headers: {} content: application/problem+json: schema: @@ -908,38 +973,42 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/confirm_ready: post: tags: - mec_app_support - description: - 'This method may be used by the MEC application instance to notify - the MEC platform that it is up and running. ' + summary: Confirm the application instance is up and running + description: >- + This method may be used by the MEC application instance to notify the MEC platform that it is up and running. operationId: ApplicationsConfirmReady_POST parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string requestBody: + description: >- + Message content in the request contains the indication that the application instance is up and running. content: application/json: schema: $ref: '#/components/schemas/AppReadyConfirmation' + required: false responses: '204': description: No Content + headers: {} content: {} '401': - description: - Unauthorized. It is used when the client did not submit the - appropriate credentials. + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} content: application/problem+json: schema: @@ -949,17 +1018,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -969,10 +1038,9 @@ paths: type: object description: Empty schema '409': - description: - Conflict. The operation cannot be executed currently, due to - a conflict with the state of the resource. Typically, this is because - the application instance resource is in NOT_INSTANTIATED state. + description: >- + Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + headers: {} content: application/problem+json: schema: @@ -983,6 +1051,7 @@ paths: description: Empty schema '429': description: Too Many Requests. It is used when a rate limiter has triggered. + headers: {} content: application/problem+json: schema: @@ -991,28 +1060,144 @@ paths: schema: type: object description: Empty schema - /timing/timing_caps: - get: + deprecated: false + parameters: [] + /registrations: + post: tags: - mec_app_support - description: - This method retrieves the information of the platform's timing - capabilities which corresponds to the timing capabilities query - operationId: TimingCaps_GET + summary: Register the MEC application instance to the MEC platform + description: >- + The POST method may be used by the MEC application instance to request its registration to the MEC platform. + operationId: ApplicationsRegistrations_POST parameters: [] + requestBody: + description: >- + The message content in the request contains the profile of the MEC application instance, calling the MEC platform to register the MEC application instance. + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + example: + appName: "appName" + appProvider: "appProvider1" + appCategory: + href: "/example/catalogue1" + id: "id12345" + name: "RNI" + version: "version1" + appDId: "TODO" + appInstanceId: "ID1" + endpoint: + uris: + - "mecAppSuptApi/example" + appServiceRequired: + - requestedPermissions: "string" + serCategory: + href: "/example/catalogue1" + id: "id12345" + name: "RNI" + version: "version1" + serName: "string" + serTransportDependencies: + - labels: + - "string" + serializers: + - "JSON" + transport: + protocol: "string" + security: + oAuth2Info: + grantTypes: + - "OAUTH2_CLIENT_CREDENTIALS" + tokenEndpoint: "/mecSerMgmtApi/security/TokenEndPoint" + type: "REST_HTTP" + version: "string" + version: "string" + appServiceOptional: + - requestedPermissions: "string" + serCategory: + href: "/example/catalogue1" + id: "id12345" + name: "RNI" + version: "version1" + serName: "string" + serTransportDependencies: + - labels: + - "string" + serializers: + - "JSON" + transport: + protocol: "string" + security: + oAuth2Info: + grantTypes: + - "OAUTH2_CLIENT_CREDENTIALS" + tokenEndpoint: "/mecSerMgmtApi/security/TokenEndPoint" + type: "REST_HTTP" + version: "string" + version: "string" + appFeatureRequired: + - featureName: "string" + version: "string" + appFeatureOptional: + - featureName: "string" + version: "string" + isInsByMec: false + appProfile: + easId: "appName" + endPt: + uris: + - "string" + acIds: + - "string" + provId: "appProvider1" + type: "string" + scheds: + - "string" + svcArea: "string" + svcKpi: "string" + permLvl: + - "string" + easFeats: + - "string" + svcContSupp: + - "string" + appLocs: + - "string" + avlRep: 1577836800 + status: "string" + required: true responses: - '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + '201': + description: >- + Indicates successful resource creation for registration of the MEC application instance to the MEC platform. + headers: + location: + description: The resource URI of the created resource + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource content: application/json: schema: - $ref: '#/components/schemas/TimingCaps' + $ref: '#/components/schemas/AppInfo' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '401': + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. content: application/problem+json: schema: @@ -1022,17 +1207,15 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. content: application/problem+json: schema: @@ -1041,28 +1224,37 @@ paths: schema: type: object description: Empty schema - /timing/current_time: + deprecated: false + /registrations/{appInstanceId}: get: tags: - mec_app_support - description: - This method retrieves the information of the platform's current - time which corresponds to the get platform time procedure - operationId: TimingCurrentTime_GET - parameters: [] + summary: Retrieve information about the MEC application instance registration to the MEC platform + description: >- + The GET method may be used by the MEC application instance to retrieve information about the existing MEC application instance registration to the MEC platform. + operationId: ApplicationsRegistration_GET + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing the requested subscription is returned. + headers: {} content: application/json: schema: - $ref: '#/components/schemas/CurrentTime' + $ref: '#/components/schemas/AppInfo' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -1072,17 +1264,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -1091,270 +1283,1824 @@ paths: schema: type: object description: Empty schema -components: - schemas: - AppReadyConfirmation: - title: AppReadyConfirmation - required: - - indication - type: object - properties: - indication: - type: string - enum: - - READY - description: Indication about the MEC application instance. - description: - This type represents the information that the MEC application instance - indicates to the MEC platform that it is up and running. - AppTerminationConfirmation: - title: AppTerminationConfirmation - required: - - operationAction - type: object - properties: - operationAction: - $ref: '#/components/schemas/OperationActionType' - description: - This type represents the information that the MEC application instance - provides to the MEC platform when informing it that the application has completed - its application level related terminate/stop actions, e.g. retention of application - state in the case of stop. - AppTerminationNotification.Links: - title: AppTerminationNotification.Links - required: - - subscription - type: object - properties: - subscription: - $ref: '#/components/schemas/LinkType' - confirmTermination: - $ref: '#/components/schemas/LinkType' - description: Object containing hyperlinks related to the resource. - AppTerminationNotification: - title: AppTerminationNotification - required: - - _links - - maxGracefulTimeout - - notificationType - - operationAction - type: object - properties: - notificationType: - type: string - description: Shall be set to AppTerminationNotification. - example: '["AppTerminationNotification"]' - operationAction: - $ref: '#/components/schemas/OperationActionType' - maxGracefulTimeout: - type: integer - description: - Maximum timeout value in seconds for graceful termination or - graceful stop of an application instance. - _links: - $ref: '#/components/schemas/AppTerminationNotification.Links' - description: - This type represents the information that the MEC platform notifies - the subscribed application instance about the corresponding application instance - termination/stop. - AppTerminationNotificationSubscription: - title: AppTerminationNotificationSubscription - required: - - _links - - appInstanceId - - callbackReference - - subscriptionType - type: object - properties: - subscriptionType: - type: string - description: Shall be set to AppTerminationNotificationSubscription. - example: '["AppTerminationNotificationSubscription"]' - callbackReference: - type: string - description: - URI selected by the MEC application instance to receive notifications - on the subscribed MEC application instance management information. This - shall be included in both the request and the response. - _links: - $ref: '#/components/schemas/Self' - appInstanceId: - type: string - description: It is used as the filtering criterion for the subscribed events. - example: '["ID1"]' - description: - This type represents the information that the MEC platform notifies - the subscribed application instance about the corresponding application instance - termination/stop. - example: - appInstanceId: '["ID1"]' - subscriptionType: '["AppTerminationNotificationSubscription"]' - _links: - self: - href: '["/mecAppSuptApi/example"]' - callbackReference: callbackReference - CurrentTime: - title: CurrentTime - required: - - nanoSeconds - - seconds - - timeSourceStatus - type: object - properties: - seconds: - type: integer - description: - The seconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC - nanoSeconds: - type: integer - description: - The nanoseconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC - timeSourceStatus: - $ref: '#/components/schemas/TimeSourceStatus' - description: - This type represents the information provided by the MEC platform - in response to the Get Platform Time Request message. - example: - seconds: 0 - nanoSeconds: 6 - timeSourceStatus: '["TRACEABLE"]' - DestinationInterface.InterfaceType: - title: DestinationInterface.InterfaceType - type: string - description: Type of the interface - example: '["TUNNEL"]' - enum: - - TUNNEL - - MAC - - IP - DestinationInterface: - title: DestinationInterface - required: - - interfaceType - type: object - properties: - interfaceType: - $ref: '#/components/schemas/DestinationInterface.InterfaceType' - tunnelInfo: - $ref: '#/components/schemas/TunnelInfo' - srcMacAddress: - type: string - description: Source address identifies the MAC address of the interface - example: '["02-00-00-00-00-00"]' - dstMacAddress: - type: string - description: Source address identifies the MAC address of the interface - example: '["02-00-00-00-00-00"]' - dstIpAddress: - type: string - description: IP address of the remote destination - example: '["192.0.2.0"]' - description: - This type represents the destination interface. If the action is - FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall - be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, - two values shall be provided. If the action is DROP, no value shall be provided. - example: - interfaceType: '["TUNNEL"]' - dstIpAddress: '["192.0.2.0"]' - srcMacAddress: '["02-00-00-00-00-00"]' - tunnelInfo: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' - dstMacAddress: '["02-00-00-00-00-00"]' - DnsRule.IpAddressType: - title: DnsRule.IpAddressType - type: string - description: IP address type - example: '["IP_V6"]' - enum: - - IP_V6 - - IP_V4 - DnsRule.State: - title: DnsRule.State - type: string - description: DNS rule state. This attribute may be updated using HTTP PUT method - example: '["ACTIVE"]' - enum: - - ACTIVE - - INACTIVE - DnsRule: - title: DnsRule - required: - - dnsRuleId - - domainName - - ipAddress - - ipAddressType - - state - type: object - properties: - dnsRuleId: - type: string - description: Identifies the DNS Rule - example: '["dnsRule1"]' - domainName: - type: string - description: FQDN resolved by the DNS rule - example: '["www.example.com"]' - ipAddressType: - $ref: '#/components/schemas/DnsRule.IpAddressType' - ipAddress: - type: string - description: IP address associated with the FQDN resolved by the DNS rule - example: '["192.0.2.0"]' - ttl: - type: integer - description: Time to live value - state: - $ref: '#/components/schemas/DnsRule.State' - description: This type represents the general information of a DNS rule. - example: - domainName: '["www.example.com"]' - ipAddress: '["192.0.2.0"]' - dnsRuleId: '["dnsRule1"]' - state: '["ACTIVE"]' - ttl: 0 - ipAddressType: '["IP_V6"]' - LinkType: - title: LinkType - type: object - properties: - href: - type: string - description: URI referring to a resource - example: '["/mecAppSuptApi/example"]' - description: - This type represents a type of link and may be referenced from - data structures - example: - href: '["/mecAppSuptApi/example"]' - MecAppSuptApiSubscriptionLinkList.Links: - title: MecAppSuptApiSubscriptionLinkList.Links - required: - - self + deprecated: false + put: + tags: + - mec_app_support + summary: Update the existing registration of that MEC application instance to the MEC platform + description: >- + The PUT method may be used by the MEC application instance to update its registration to the MEC platform. + operationId: ApplicationsRegistration_PUT + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: >- + Message content in the request contains the profile of the application, calling the MEC platform to update the existing MEC application instance registration. + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + example: + appName: "appName" + appProvider: "appProvider1" + appCategory: + href: "/example/catalogue1" + id: "id12345" + name: "RNI" + version: "version1" + appDId: "TODO" + appInstanceId: "ID1" + endpoint: + uris: + - "mecAppSuptApi/example" + appServiceRequired: + - requestedPermissions: "string" + serCategory: + href: "/example/catalogue1" + id: "id12345" + name: "RNI" + version: "version1" + serName: "string" + serTransportDependencies: + - labels: + - "string" + serializers: + - "JSON" + transport: + protocol: "string" + security: + oAuth2Info: + grantTypes: + - "OAUTH2_CLIENT_CREDENTIALS" + tokenEndpoint: "/mecSerMgmtApi/security/TokenEndPoint" + type: "REST_HTTP" + version: "string" + version: "string" + appServiceOptional: + - requestedPermissions: "string" + serCategory: + href: "/example/catalogue1" + id: "id12345" + name: "RNI" + version: "version1" + serName: "string" + serTransportDependencies: + - labels: + - "string" + serializers: + - "JSON" + transport: + protocol: "string" + security: + oAuth2Info: + grantTypes: + - "OAUTH2_CLIENT_CREDENTIALS" + tokenEndpoint: "/mecSerMgmtApi/security/TokenEndPoint" + type: "REST_HTTP" + version: "string" + version: "string" + appFeatureRequired: + - featureName: "string" + version: "string" + appFeatureOptional: + - featureName: "string" + version: "string" + isInsByMec: false + appProfile: + easId: "appName" + endPt: + uris: + - "string" + acIds: + - "string" + provId: "appProvider1" + type: "string" + scheds: + - "string" + svcArea: "string" + svcKpi: "string" + permLvl: + - "string" + easFeats: + - "string" + svcContSupp: + - "string" + appLocs: + - "string" + avlRep: 1577836800 + status: "string" + required: true + responses: + '204': + description: No Content + headers: {} + content: {} + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '401': + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + delete: + tags: + - mec_app_support + summary: Request deregistration of the application instance from the MEC platform + description: >- + The DELETE method is used to cancel the existing MEC application instance registration. + operationId: ApplicationsRegistration_DELETE + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + responses: + '204': + description: No Content + headers: {} + content: {} + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '401': + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + parameters: [] + + /request: + post: + summary: Request service provisioning information. + operationId: RequestServProv + tags: + - Service Provisioning, EEC Registration, and EAS Discovery + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + eecId: + type: string + example: "string" + ueId: + type: string + example: "string" + acProfs: + type: array + items: + type: object + properties: + acId: + type: string + example: "string" + acType: + type: string + example: "string" + eecSvcContSupp: + type: array + items: + type: string + enum: + - EEC_INITIATED + - EEC_EXECUTED_VIA_SOURCE_EES + example: ["EEC_INITIATED", "EEC_EXECUTED_VIA_SOURCE_EES"] + locInf: + type: object + properties: + geographicArea: + type: object + properties: + point: + type: object + properties: + point: + type: object + properties: + lon: + type: number + format: float + example: 7.4200 + lat: + type: number + format: float + example: 43.7356 + shape: + type: string + example: "POINT" + required: + - eecId + responses: + '200': + description: > + OK (The requested service provisioning information was returned successfully). + content: + application/json: + schema: + $ref: '#/components/schemas/ECSServProvResp' + "204": + description: Successful response sent when there is no need to provide a + new liveness interval value to the service Instance. + content: {} + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: The operation is not allowed due to a conflict with the state + of the resource. The MEC platform shall respond with this code if the + service instance is in "INACTIVE" state. More information shall be provided + in the "detail" attribute of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "It is used when a condition has failed during conditional\ + \ requests, e.g. when using ETags to avoid write conflicts. In the returned\ + \ ProblemDetails structure, the \"detail\" attribute should convey more\ + \ information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + servers: + - url: https://localhost/sandboxname/eecs-serviceprovisioning/v1 + + /registration: + post: + operationId: CreateEECReg + tags: + - Service Provisioning, EEC Registration, and EAS Discovery + description: Create a new EEC registration at the EES. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + eecId: + type: string + example: "string" + ueId: + type: string + example: "ue-67890" + acProfs: + type: array + items: + type: object + properties: + acId: + type: string + example: "string" + acType: + type: string + example: "string" + expTime: + type: string + format: date-time + example: "2025-01-31T15:04:05Z" + eecSvcContSupp: + type: array + items: + type: string + enum: + - EEC_INITIATED + - SOURCE_EAS_DECIDED + example: ["EEC_INITIATED", "SOURCE_EAS_DECIDED"] + eecCntxId: + type: string + example: "string" + srcEesId: + type: string + example: "mep1" + endPt: + type: object + properties: + uri: + type: string + example: "http://172.30.225.7/sbx2cmq8bn/mep1" + ueMobilityReq: + type: boolean + example: true + easSelReqInd: + type: boolean + example: false + ueType: + type: string + example: "NORMAL_UE" + required: + - eecId + responses: + '201': + description: Created (EEC information is registered successfully at EES). + content: + application/json: + schema: + type: object + properties: + RegistrationID: + type: string + description: Identifier of the EEC registration. + ExpirationTime: + type: string + format: date-time + description: Expiration time of the registration. + EECContextID: + type: string + description: Identifier of the EEC context information available at the EES. + EECContextRelocationStatus: + type: boolean + description: Indicates whether the EEC context retrieval from the source EES was successful. + DiscoveredEASList: + type: array + items: + $ref: '#/components/schemas/EASProfile' + "204": + description: Successful response sent when there is no need to provide a + new liveness interval value to the service Instance. + content: {} + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: The operation is not allowed due to a conflict with the state + of the resource. The MEC platform shall respond with this code if the + service instance is in "INACTIVE" state. More information shall be provided + in the "detail" attribute of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "It is used when a condition has failed during conditional\ + \ requests, e.g. when using ETags to avoid write conflicts. In the returned\ + \ ProblemDetails structure, the \"detail\" attribute should convey more\ + \ information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + servers: + - url: https://localhost/sandboxname/eees-eecregistration/v1 + + /registration/{registrationId}: + get: + summary: Retrieve EEC Registration Details + operationId: getRegistrationDetails + tags: + - Service Provisioning, EEC Registration, and EAS Discovery + parameters: + - name: registrationId + in: path + description: Identifies an individual EEC registration. + required: true + schema: + type: string + responses: + '200': + description: Successful retrieval of EEC registration details. + content: + application/json: + schema: + type: object + properties: + RegistrationID: + type: string + description: Identifier of the EEC registration. + ExpirationTime: + type: string + format: date-time + description: Expiration time of the registration. + EECContextID: + type: string + description: Identifier of the EEC context information available at the EES. + EECContextRelocationStatus: + type: boolean + description: Indicates whether the EEC context retrieval from the source EES was successful. + DiscoveredEASList: + type: array + items: + $ref: '#/components/schemas/EASProfile' + '404': + description: EEC registration not found. + '400': + description: Invalid registration ID supplied. + '500': + description: Internal server error. + put: + summary: EEC Registration Update Request via PUT + operationId: updateRegistrationPut + tags: + - Service Provisioning, EEC Registration, and EAS Discovery + parameters: + - name: registrationId + in: path + description: Identifies an individual EEC registration. + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + acProfs: + type: array + items: + $ref: '#/components/schemas/ACProfile' + description: Profiles of ACs for which the EEC provides edge enabling services. + expTime: + $ref: '#/components/schemas/DateTime' + ueMobilityReq: + type: boolean + description: > + Set to true to indicate that UE Mobility support is required. + Set to false to indicate that UE mobility support is not required. + The default value when omitted is false. + responses: + "200": + description: Successful registration update response via PUT + content: + application/json: + schema: + type: object + properties: + expirationTime: + type: string + format: date-time + description: Expiration time of the registration. + unfulfilledACInfo: + type: array + description: List of unfulfilled AC information. + items: + type: object + properties: + acid: + type: string + description: Application Identifier. + reason: + type: string + description: Reason indicating the cause (e.g., EAS not available). + "204": + description: Successful response sent when there is no need to provide a + new liveness interval value to the service Instance. + content: {} + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + + delete: + operationId: DeleteIndEECReg + tags: + - Service Provisioning, EEC Registration, and EAS Discovery + description: Remove an existing EEC registration at EES. + parameters: + - name: registrationId + in: path + description: Identifies an individual EEC registration. + required: true + schema: + type: string + responses: + '204': + description: > + No Content (An individual EEC registration resource deleted successfully). + servers: + - url: https://localhost/sandboxname/eees-eecregistration/v1 + + /eas-profiles/request-discovery: + post: + description: > + Provides EAS information requested by the service consumer (i.e. EEC, EAS or EES). + operationId: GetEASDiscInfo + tags: + - Service Provisioning, EEC Registration, and EAS Discovery + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + requestorId: + type: object + properties: + eesId: + type: string + example: "string" + eecId: + type: string + example: "string" + oneOf: + - required: ["eesId"] + - required: ["eecId"] + ueId: + type: string + example: "string" + easDiscoveryFilter: + type: object + properties: + acChars: + type: array + items: + type: object + properties: + acProf: + type: object + properties: + acId: + type: string + example: "string" + acType: + type: string + example: "string" + eecSvcContinuity: + type: array + items: + type: string + example: ["EEC_INITIATED", "string"] + locInf: + type: object + description: "Location information. Define properties as required." + example: {} + predictExpTime: + type: string + format: date-time + example: "2025-02-04T09:49:01.348Z" + required: + - requestorId + responses: + '200': + description: > + OK (The requested EAS discovery information was returned successfully). + content: + application/json: + schema: + $ref: '#/components/schemas/EasDiscoveryResp' + + servers: + - url: https://localhost/sandboxname/eees-easdiscovery/v1 + /timing/timing_caps: + get: + tags: + - mec_app_support + summary: Retrieve information about the mecTimingCaps resource + description: >- + This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query + operationId: TimingCaps_GET + parameters: [] + responses: + '200': + description: >- + It is used to indicate nonspecific success. The response message content contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/TimingCaps' + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + parameters: [] + /timing/current_time: + get: + tags: + - mec_app_support + summary: Retrieve information about the mecCurrentTime resource + description: >- + This method retrieves the information of the platform's current time which corresponds to the get platform time procedure + operationId: TimingCurrentTime_GET + parameters: [] + responses: + '200': + description: >- + It is used to indicate nonspecific success. The response message content contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/CurrentTime' + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + parameters: [] +components: + schemas: + EasDiscoveryResp: + description: EAS discovery response. + type: object + properties: + discoveredEas: + type: array + items: + $ref: '#/components/schemas/DiscoveredEas' + description: List of EAS discovery information. + required: + - discoveredEas + DiscoveredEas: + description: Represents an EAS discovery information. + type: object + properties: + eas: + $ref: '#/components/schemas/EASProfile' + eesEndPt: + $ref: '#/components/schemas/EndPoint' + lifeTime: + $ref: '#/components/schemas/DateTime' + required: + - eas + EasDiscoveryReq: + description: EAS discovery request information. + type: object + properties: + requestorId: + $ref: '#/components/schemas/RequestorId' + ueId: + $ref: '#/components/schemas/Gpsi' + easDiscoveryFilter: + $ref: '#/components/schemas/EasDiscoveryFilter' + eecSvcContinuity: + type: array + items: + $ref: '#/components/schemas/ACRScenario' + description: > + Indicates if the EEC supports service continuity or not, also indicates which ACR + scenarios are supported by the EEC. + eesSvcContinuity: + type: array + items: + $ref: '#/components/schemas/ACRScenario' + description: > + Indicates if the EES supports service continuity or not, also indicates which ACR + scenarios are supported by the EES. + easSvcContinuity: + type: array + items: + $ref: '#/components/schemas/ACRScenario' + description: > + Indicates if the EAS supports service continuity or not, also indicates which ACR + scenarios are supported by the EAS. + locInf: + $ref: '#/components/schemas/LocationInfo' + easSelSupInd: + type: boolean + description: > + Indicates if the EEC requires the EAS selection support from the EES (e.g., for + constrained device). The default value false indicates the EAS selection is not + required from the EES. + suppFeat: + $ref: '#/components/schemas/SupportedFeatures' + easIntTrigSup: + type: boolean + description: > + Indicates to the EES whether the EAS instantiation triggering should be performed for + the current request. The default value false indicates the EAS instantiation triggering + should not be performed. The true value indicate the EAS instantiation triggering should + be performed. + predictExpTime: + $ref: '#/components/schemas/DateTime' + required: + - requestorId + + EasDiscoveryFilter: + description: Represents the EAS characteristics. + type: object + properties: + acChars: + type: array + items: + $ref: '#/components/schemas/ACCharacteristics' + minItems: 1 + description: AC description for which an EAS is needed. + ACCharacteristics: + description: Represents EAS dynamic information changes filter. + type: object + properties: + acProf: + $ref: '#/components/schemas/ACProfile' + required: + - acProf + RequestorId: + description: Represents identifier of the requestor. + type: object + properties: + eesId: + type: string + description: The identifier of the EES (e.g. S-EES). + easId: + type: string + description: The application identifier of the EAS (e.g. S-EAS), e.g. FQDN, URI. + eecId: + type: string + description: The identifier of the EEC. + oneOf: + - required: [eesId] + - required: [easId] + - required: [eecId] + + EASProfile: + type: object + required: + - easId + - endPt + - acIds + - scheds + - permLvl + - easFeats + - svcContSupp + - appLocs + properties: + easId: + description: The identifier of the EAS + type: string + example: + appName + endPt: + $ref: '#/components/schemas/EndPoint' + acIds: + type: array + items: + type: string + minItems: 1 + description: Identities of the Application Clients that can be served by the EAS + provId: + type: string + description: Identifier of the ASP that provides the EAS. + example: + appProvider1 + type: + description: The category or type of EAS. + type: string + scheds: + type: array + items: + type: string + minItems: 1 + description: The availability schedule of the EAS. + svcArea: + type: string + description: >- + The list of geographical and topological areas that the EAS serves. ACs in the UE that are outside the area will not be served. + svcKpi: + type: string + description: Service characteristics provided by the EAS. + permLvl: + type: array + items: + type: string + minItems: 1 + description: level of service permissions supported by the EAS. + easFeats: + type: array + items: + type: string + minItems: 1 + description: Service features supported by the EAS. + svcContSupp: + type: array + items: + type: string + minItems: 1 + description: The ACR scenarios supported by the EAS for service continuity. + appLocs: + type: array + items: + type: string + minItems: 1 + description: >- + List of DNAI(s) and the N6 traffic information associated with the EAS. + avlRep: + type: integer + description: >- + The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration. + example: + 1577836800 + status: + type: string + description: 'EAS status information. ' + + EECRegistration: + description: Describes the parameters to perform EEC Registration related operations. + type: object + properties: + eecId: + type: string + description: Represents a unique identifier of the EEC. + ueId: + $ref: '#/components/schemas/Gpsi' + acProfs: + type: array + items: + $ref: '#/components/schemas/ACProfile' + description: Profiles of ACs for which the EEC provides edge enabling services. + expTime: + $ref: '#/components/schemas/DateTime' + eecSvcContSupp: + type: array + items: + $ref: '#/components/schemas/ACRScenario' + description: Profiles of ACs for which the EEC provides edge enabling services. + eecCntxId: + type: string + description: Identifier of the EEC context obtained from a previous registration. + srcEesId: + type: string + description: Identifier of the EES that provided EEC context ID. + endPt: + $ref: '#/components/schemas/EndPoint' + ueMobilityReq: + type: boolean + description: > + Set to true to indicate that UE Mobility support is required. + Set to false to indicate that UE mobility support is not required. + The default value when omitted is false. + easSelReqInd: + type: boolean + description: > + Set to true to indicate the EES support for EAS selection. + Set to false to indicate the EES shall not select the EAS. + The default value when omitted is false. + ueType: + $ref: '#/components/schemas/DeviceType' + required: + - eecId + DeviceType: + anyOf: + - type: string + enum: + - CONSTRAINED_UE + - NORMAL_UE + - type: string + description: > + This string provides forward-compatibility with future + extensions to the enumeration and is not used to encode + content defined in the present version of this API. + description: > + Represents the UE type. + Possible values are: + - CONSTRAINED_UE: Indicates UE is constrained with resources like power, processor etc. + - NORMAL_UE: Indicates UE is not constrained with resources. + ECSServProvReq: + description: ECS service provisioning request information. + type: object + properties: + eecId: + type: string + description: Represents a unique identifier of the EEC. + ueId: + $ref: '#/components/schemas/Gpsi' + acProfs: + type: array + items: + $ref: '#/components/schemas/ACProfile' + description: Information about services the EEC wants to connect to. + appInfo: + type: array + items: + $ref: '#/components/schemas/ApplicationInfo' + minItems: 1 + description: Information about the list of services the EEC wants to connect. + eecSvcContSupp: + type: array + items: + $ref: '#/components/schemas/ACRScenario' + description: > + Indicates if the EEC supports service continuity or not, also indicates which + ACR scenarios are supported by the EEC. + locInf: + $ref: '#/components/schemas/LocationInfo' + ecspIds: + type: array + items: + type: string + minItems: 1 + description: Indicates to the ECS which EES providers are preferred by the EEC. + suppFeat: + $ref: '#/components/schemas/SupportedFeatures' + required: + - eecId + + ECSServProvResp: + description: ECS service provisioning response information. + type: object + properties: + ednCnfgInfo: + type: array + items: + $ref: '#/components/schemas/EDNConfigInfo' + minItems: 1 + description: List of EDN configuration information. + required: + - ednCnfgInfo + + SupportedFeatures: + type: string + pattern: '^[A-Fa-f0-9]*$' + description: > + A string used to indicate the features supported by an API that is used as defined in clause + 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in + hexadecimal representation Each character in the string shall take a value of "0" to "9", + "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in + table 5.2.2-3. The most significant character representing the highest-numbered features + shall appear first in the string, and the character representing features 1 to 4 + shall appear last in the string. The list of features and their numbering (starting with 1) + are defined separately for each API. If the string contains a lower number of characters + than there are defined features for an API, all features that would be represented by + characters that are not present in the string are not supported. + + LocationInfo: + description: Represents the user location information. + type: object + properties: + geographicArea: + $ref: '#/components/schemas/GeographicArea' + + GeographicArea: + description: Geographic area specified by different shape. + anyOf: + - $ref: '#/components/schemas/Point' + Point: + description: Ellipsoid Point. + allOf: + - $ref: '#/components/schemas/GADShape' + - type: object + required: + - point + properties: + point: + $ref: '#/components/schemas/GeographicalCoordinates' + GeographicalCoordinates: + description: Geographical coordinates. + type: object + required: + - lon + - lat + properties: + lon: + type: number + format: double + minimum: -180 + maximum: 180 + lat: + type: number + format: double + minimum: -90 + maximum: 90 + GADShape: + description: Common base type for GAD shapes. + type: object + required: + - shape + properties: + shape: + $ref: '#/components/schemas/SupportedGADShapes' + discriminator: + propertyName: shape + mapping: + POINT: '#/components/schemas/Point' + POINT_UNCERTAINTY_CIRCLE: '#/components/schemas/PointUncertaintyCircle' + POINT_UNCERTAINTY_ELLIPSE: '#/components/schemas/PointUncertaintyEllipse' + POLYGON: '#/components/schemas/Polygon' + POINT_ALTITUDE: '#/components/schemas/PointAltitude' + POINT_ALTITUDE_UNCERTAINTY: '#/components/schemas/PointAltitudeUncertainty' + ELLIPSOID_ARC: '#/components/schemas/EllipsoidArc' + LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE: '#/components/schemas/Local2dPointUncertaintyEllipse' + LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID: '#/components/schemas/Local3dPointUncertaintyEllipsoid' + SupportedGADShapes: + description: Indicates supported GAD shapes. + anyOf: + - type: string + enum: + - POINT + - POINT_UNCERTAINTY_CIRCLE + - POINT_UNCERTAINTY_ELLIPSE + - POLYGON + - POINT_ALTITUDE + - POINT_ALTITUDE_UNCERTAINTY + - ELLIPSOID_ARC + - LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE + - LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID + - DISTANCE_DIRECTION + - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE + - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID + - type: string + + Gpsi: + type: string + pattern: '^(msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|.+)$' + description: > + String identifying a Gpsi shall contain either an External Id or an MSISDN. + It shall be formatted as follows -External Identifier= "extid-'extid', where 'extid' + shall be formatted according to clause 19.7.2 of 3GPP TS 23.003 that describes an + External Identifier. + + + ACProfile: + description: AC information indicating required services and service characteristics. + type: object + properties: + acId: + type: string + description: Identity of the AC. + acType: + type: string + description: The category or type of AC. + prefEcsps: + type: array + items: + type: string + description: Indicates to the ECS which ECSPs are preferred for the AC. + simInactTime: + $ref: '#/components/schemas/DurationSec' + eass: + type: array + items: + $ref: '#/components/schemas/EasDetail' + minItems: 1 + description: List of EAS information. + # easBundleInfos: + # type: array + # items: + # $ref: 'TS29558_Eees_EASRegistration.yaml#/components/schemas/EASBundleInfo' + # minItems: 1 + # description: > + # List of EAS bundles to which the EAS (identified via the "easId" attribute) belongs. + required: + - acId + + EasDetail: + description: EAS details. + type: object + properties: + easId: + type: string + description: Application identifier of the EAS. + required: + - easId + + DurationSec: + type: integer + minimum: 0 + description: Unsigned integer identifying a period of time in units of seconds. + + + ApplicationInfo: + description: Represents the services the EEC wants to connect. + type: object + properties: + acProf: + $ref: '#/components/schemas/ACProfile' + appGroupProfile: + $ref: '#/components/schemas/AppGroupProfile' + required: + - acProf + + ACRScenario: + anyOf: + - type: string + enum: + - EEC_INITIATED + - EEC_EXECUTED_VIA_SOURCE_EES + - EEC_EXECUTED_VIA_TARGET_EES + - SOURCE_EAS_DECIDED + - SOURCE_EES_EXECUTED + - EEL_MANAGED_ACR + - type: string + description: > + This string provides forward-compatibility with future + extensions to the enumeration but is not used to encode + content defined in the present version of this API. + description: | + Represents the ACR scenarios supported by EES. + Possible values are: + - EEC_INITIATED: Represents the EEC initiated ACR scenario. + - EEC_EXECUTED_VIA_SOURCE_EES: Represents the EEC ACR scenario executed via the S-EES. + - EEC_EXECUTED_VIA_TARGET_EES: Represents the EEC ACR scenario executed via the T-EES. + - SOURCE_EAS_DECIDED: Represents the EEC ACR scenario where the S-EAS decides to perform + ACR. + - SOURCE_EES_EXECUTED: Represents the EEC ACR scenario where S-EES executes the ACR. + - EEL_MANAGED_ACR: Represents the EEC ACR scenario where the ACR is managed by the + Edge Enabler Layer. + AppGroupProfile: + description: Represents the application group profile for common EAS. + type: object + properties: + appGrpId: + type: string + description: Represents the application group that uniquely identifies + the group of UEs using the same application. + easId: + type: string + description: Represents the application identifier of the EAS. + required: + - appGrpId + - easId + + EDNConfigInfo: + description: Represents the EDN configuration information. + type: object + properties: + ednConInfo: + $ref: '#/components/schemas/EDNConInfo' + eess: + type: array + items: + $ref: '#/components/schemas/EESInfo' + minItems: 1 + description: Contains the list of EESs of the EDN. + lifeTime: + $ref: '#/components/schemas/DateTime' + required: + - ednConInfo + - eess + + + EDNConInfo: + description: Represents an EDN connection information. + type: object + properties: + dnn: + $ref: '#/components/schemas/Dnn' + # snssai: + # $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' + # ednTopoSrvArea: + # $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G' + + Dnn: + type: string + description: > + String representing a Data Network as defined in clause 9A of 3GPP TS 23.003; + it shall contain either a DNN Network Identifier, or a full DNN with both the Network + Identifier and Operator Identifier, as specified in 3GPP TS 23.003 clause 9.1.1 and 9.1.2. + It shall be coded as string in which the labels are separated by dots + (e.g. "Label1.Label2.Label3"). + + DateTime: + format: date-time + type: string + description: string with format "date-time" as defined in OpenAPI. + + + EESInfo: + description: Represents EES information. + type: object + properties: + eesId: + type: string + description: Identity of the EES. + endPt: + $ref: '#/components/schemas/EndPoint' + easIds: + type: array + items: + type: string + description: > + Application identities of the Edge Application Servers registered + with the EES. + eecRegConf: + type: boolean + description: > + Indicates whether the EEC is required to register on the EES to use edge services + or not. + required: + - eesId + - eecRegConf + Fqdn: + description: Fully Qualified Domain Name + type: string + pattern: '^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\.)+[A-Za-z]{2,63}\.?$' + minLength: 4 + maxLength: 253 + + Ipv6Addr: + type: string + description: > + string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. + The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used. + Uri: + type: string + description: string providing an URI formatted according to IETF RFC 3986. + Ipv4Addr: + type: string + description: > + string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in + IETF RFC 1166. + EndPoint: + type: object + description: The end point information to reach EAS. + properties: + fqdn: + $ref: '#/components/schemas/Fqdn' + ipv4Addrs: + type: array + items: + $ref: '#/components/schemas/Ipv4Addr' + minItems: 1 + description: IPv4 addresses of the edge server. + ipv6Addrs: + type: array + items: + $ref: '#/components/schemas/Ipv6Addr' + minItems: 1 + description: IPv6 addresses of the edge server. + uri: + $ref: '#/components/schemas/Uri' + oneOf: + - required: [uri] + - required: [fqdn] + - required: [ipv4Addrs] + - required: [ipv6Addrs] + + InvalidParam: + description: > + Represents the description of invalid parameters, for a request rejected due to invalid + parameters. + type: object + properties: + param: + type: string + description: Attribute's name encoded as a JSON Pointer, or header's name. + reason: + type: string + description: A human-readable reason, e.g. "must be a positive integer". + required: + - param + + # EASBundleDetail: + # description: Represents details of EAS Bundle. + # type: object + # properties: + # easId: + # type: string + # description: > + # Application identity of the Edge Application Servers registered with the EES. + # easBundleInfos: + # type: array + # items: + # $ref: 'TS29558_Eees_EASRegistration.yaml#/components/schemas/EASBundleInfo' + # minItems: 1 + # description: List of EAS bundles to which the EAS belongs. + # required: + # - easId + # - easBundleInfos + EesAuthMethod: + anyOf: + - type: string + enum: + - TLS_CLIENT_SERVER_CERTIFICATE + - TLS_WITH_AKMA + - TLS_WITH_GBA + - SERVER_SIDE_CERTIFICATE_BASED + - type: string + description: > + This string provides forward-compatibility with future + extensions to the enumeration and is not used to encode + content defined in the present version of this API. + description: | + Represents the Authentication methods supported by EES. + Possible values are: + - TLS_CLIENT_SERVER_CERTIFICATE: Represents TLS with client server certificate + authentication. + - TLS_WITH_AKMA: Represents TLS with AKMA authentication. + - TLS_WITH_GBA: Represents TLS with GBA authentication. + - SERVER_SIDE_CERTIFICATE_BASED: Represents server side certification only. + + AppReadyConfirmation: + title: AppReadyConfirmation + required: + - indication + type: object + properties: + indication: + type: string + description: Indication about the MEC application instance. + example: + READY + description: >- + This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running. + AppInfo: + title: AppInfo + required: + - appName + type: object + properties: + appName: + title: appName + type: string + description: >- + Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available. + example: + appName + appProvider: + title: appProvider + type: string + description: >- + Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1. + example: + appProvider1 + appCategory: + $ref: '#/components/schemas/CategoryRef' + appDId: + title: appDId + type: string + description: >- + The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. Shall be present if the application instance is instantiated by the MEC Management. + example: + TODO + appInstanceId: + title: appInstanceId + type: string + description: >- + Identifier of the application instance. Shall be present if the application instance is instantiated by the MEC Management. + example: + ID1 + endpoint: + oneOf: + - $ref: '#/components/schemas/EndPointInfoUris' + - $ref: '#/components/schemas/EndPointInfoFqdn' + - $ref: '#/components/schemas/EndPointInfoAddresses' + - $ref: '#/components/schemas/EndPointInfoAlternative' + description: This type represents information about a transport endpoint + x-etsi-notes: "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + appServiceRequired: + title: appServiceRequired + type: array + items: + $ref: '#/components/schemas/ServiceDependency' + description: >- + Describes services a MEC application requires to run. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + appServiceOptional: + title: appServiceOptional + type: array + items: + $ref: '#/components/schemas/ServiceDependency' + description: >- + Describes services a MEC application may use if available. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + appFeatureRequired: + title: appFeatureRequired + type: array + items: + $ref: '#/components/schemas/FeatureDependency' + description: >- + Describes features a MEC application requires to run. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + appFeatureOptional: + title: appFeatureOptional + type: array + items: + $ref: '#/components/schemas/FeatureDependency' + description: >- + Describes features a MEC application may use if available. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + isInsByMec: + type: boolean + description: >- + Indicate whether the application instance is instantiated by the MEC Management. Default to FALSE if absent. + example: + false + appProfile: + $ref: '#/components/schemas/AppProfile' + description: >- + This type represents the information provided by the MEC application instance as part of the "application registration request" and "application registration update" messages. + x-etsi-notes: "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + AppTerminationConfirmation: + title: AppTerminationConfirmation + required: + - operationAction + type: object + properties: + operationAction: + $ref: '#/components/schemas/OperationActionType' + description: >- + This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop. + AppTerminationNotificationLinks: + title: AppTerminationNotificationLinks + required: + - subscription + type: object + properties: + subscription: + $ref: '#/components/schemas/LinkType' + confirmTermination: + $ref: '#/components/schemas/LinkTypeConfirmTermination' + description: Object containing hyperlinks related to the resource. + AppTerminationNotification: + title: AppTerminationNotification + required: + - notificationType + - operationAction + - maxGracefulTimeout + - _links + type: object + properties: + notificationType: + type: string + description: Shall be set to AppTerminationNotification. + example: + - AppTerminationNotification + operationAction: + $ref: '#/components/schemas/OperationActionType' + maxGracefulTimeout: + type: integer + description: >- + Maximum timeout value in seconds for graceful termination or graceful stop of an application instance. + example: + - 10 + _links: + $ref: '#/components/schemas/AppTerminationNotificationLinks' + description: >- + This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. + AppTerminationNotificationSubscription: + title: AppTerminationNotificationSubscription + required: + - subscriptionType + - callbackReference + - _links + - appInstanceId + type: object + properties: + subscriptionType: + type: string + description: Shall be set to AppTerminationNotificationSubscription. + example: + AppTerminationNotificationSubscription + callbackReference: + type: string + description: >- + URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response. + _links: + $ref: '#/components/schemas/Self' + appInstanceId: + type: string + description: It is used as the filtering criterion for the subscribed events. + example: + ID1 + description: >- + This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. + CurrentTime: + title: CurrentTime + required: + - seconds + - nanoSeconds + - timeSourceStatus + type: object + properties: + seconds: + type: integer + description: >- + The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 1577836800 + nanoSeconds: + type: integer + description: >- + The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 0 + timeSourceStatus: + $ref: '#/components/schemas/TimeSourceStatus' + description: >- + This type represents the information provided by the MEC platform in response to the Get Platform Time Request message. + DestinationInterfaceInterfaceType: + title: DestinationInterfaceInterfaceType + enum: + - TUNNEL + - MAC + - IP + type: string + description: Type of the interface + example: + - TUNNEL + DestinationInterface: + title: DestinationInterface + required: + - interfaceType + type: object + properties: + interfaceType: + $ref: '#/components/schemas/DestinationInterfaceInterfaceType' + tunnelInfo: + $ref: '#/components/schemas/TunnelInfo' + srcMacAddress: + type: string + description: Source address identifies the MAC address of the interface + example: + - 02-00-00-00-00-00 + dstMacAddress: + type: string + description: Source address identifies the MAC address of the interface + example: + - 02-00-00-00-00-00 + dstIpAddress: + type: string + description: IP address of the remote destination + example: + - 192.0.2.0 + description: >- + This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided. + DnsRuleIpAddressType: + title: DnsRuleIpAddressType + enum: + - IP_V6 + - IP_V4 + type: string + description: IP address type + example: + - IP_V6 + DnsRuleState: + title: DnsRuleState + enum: + - ACTIVE + - INACTIVE + type: string + description: DNS rule state. This attribute may be updated using HTTP PUT method + example: + - ACTIVE + DnsRule: + title: DnsRule + required: + - dnsRuleId + - domainName + - ipAddressType + - ipAddress + - state + type: object + properties: + dnsRuleId: + type: string + description: Identifies the DNS Rule + example: + - dnsRule1 + domainName: + type: string + description: FQDN resolved by the DNS rule + example: + - www.example.com + ipAddressType: + $ref: '#/components/schemas/DnsRuleIpAddressType' + ipAddress: + type: string + description: IP address associated with the FQDN resolved by the DNS rule + example: + - 192.0.2.0 + ttl: + type: integer + description: Time to live value + state: + $ref: '#/components/schemas/DnsRuleState' + description: This type represents the general information of a DNS rule. + x-etsi-notes: "NOTE:\tIf no ttl value is provided, the DnsRule shall not expire." + LinkType: + title: LinkType + type: object + properties: + href: + type: string + description: URI referring to a resource + example: + /mecAppSuptApi/example + description: >- + This type represents a type of link and may be referenced from data + structures + LinkTypeConfirmTermination: + title: LinkTypeConfirmTermination + type: object + properties: + href: + type: string + description: URI referring to a resource + example: + - /mecAppSuptApi/example + description: >- + Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout. + MecAppSuptApiSubscriptionLinkListLinks: + title: MecAppSuptApiSubscriptionLinkListLinks + required: + - self type: object properties: self: $ref: '#/components/schemas/LinkType' subscriptions: type: array - description: The MEC application instance's subscriptions items: - $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription' - description: Self-referring URI. - example: - subscriptions: - - rel: rel - href: '["/mecAppSuptApi/example"]' - - rel: rel - href: '["/mecAppSuptApi/example"]' - self: - href: '["/mecAppSuptApi/example"]' - MecAppSuptApiSubscriptionLinkList.Subscription: - title: MecAppSuptApiSubscriptionLinkList.Subscription + $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkListSubscription' + description: The MEC application instance's subscriptions + description: Object containing hyperlinks related to the resource. + MecAppSuptApiSubscriptionLinkListSubscription: + title: MecAppSuptApiSubscriptionLinkListSubscription required: - href - subscriptionType @@ -1363,14 +3109,12 @@ components: href: type: string description: URI referring to a resource - example: '["/mecAppSuptApi/example"]' + example: + - /mecAppSuptApi/example subscriptionType: type: string - description: The values shall be set to AppTerminationNotificationSubscription. + description: Type of the subscription. The values are as defined in the "subscriptionType" attribute for each different Mp1 event subscription data type. description: A link to a subscription. - example: - subscriptionType: subscriptionType - href: '["/mecAppSuptApi/example"]' MecAppSuptApiSubscriptionLinkList: title: MecAppSuptApiSubscriptionLinkList required: @@ -1378,56 +3122,40 @@ components: type: object properties: _links: - $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links' - description: - This type represents a list of links related to currently existing - subscriptions for a MEC application instance. This information is returned - when sending a request to receive current subscriptions. - example: - _links: - subscriptions: - - rel: rel - href: '["/mecAppSuptApi/example"]' - - rel: rel - href: '["/mecAppSuptApi/example"]' - self: - href: '["/mecAppSuptApi/example"]' + $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkListLinks' + description: >- + This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions. OperationActionType: title: OperationActionType - type: string - description: Operation that is being performed on the MEC application instance. - example: '["TERMINATING"]' enum: - STOPPING - TERMINATING + type: string + description: Operation that is being performed on the MEC application instance. + example: + - TERMINATING ProblemDetails: title: ProblemDetails - required: - - status - - detail type: object properties: type: type: string - description: - A URI reference according to IETF RFC 3986 that identifies - the problem type + description: >- + A URI reference according to IETF RFC 3986 that identifies the problem type title: type: string - description: A short, human-readable summary of the problem type + description: 'A short, human-readable summary of the problem type' status: type: integer description: The HTTP status code for this occurrence of the problem detail: type: string - description: - A human-readable explanation specific to this occurrence of - the problem + description: >- + A human-readable explanation specific to this occurrence of the problem instance: type: string - description: - A URI reference that identifies the specific occurrence of - the problem + description: >- + A URI reference that identifies the specific occurrence of the problem Self: title: Self required: @@ -1437,283 +3165,210 @@ components: self: $ref: '#/components/schemas/LinkType' description: Self-referring URI. - example: - self: - href: '["/mecAppSuptApi/example"]' - TimingCaps.NtpServers.AuthenticationOption: - title: TimingCaps.NtpServers.AuthenticationOption - type: string - description: NTP authentication option - example: '["NONE"]' + TimingCapsNtpServersAuthenticationOption: + title: TimingCapsNtpServersAuthenticationOption enum: - NONE - SYMMETRIC_KEY - AUTO_KEY - TimingCaps.NtpServers.NtpServerAddrType: - title: TimingCaps.NtpServers.NtpServerAddrType type: string - description: Address type of NTP server - example: '["IP_ADDRESS"]' + description: NTP authentication option + example: + - NONE + TimingCapsNtpServersNtpServerAddrType: + title: TimingCapsNtpServersNtpServerAddrType enum: - IP_ADDRESS - DNS_NAME - TimingCaps.NtpServers: - title: TimingCaps.NtpServers + type: string + description: Address type of NTP server + example: + - IP_ADDRESS + TimingCapsNtpServers: + title: TimingCapsNtpServers required: - - authenticationKeyNum - - authenticationOption - - localPriority - - maxPollingInterval - - minPollingInterval - - ntpServerAddr - ntpServerAddrType + - ntpServerAddr + - minPollingInterval + - maxPollingInterval + - localPriority + - authenticationOption type: object properties: ntpServerAddrType: - $ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType' + $ref: '#/components/schemas/TimingCapsNtpServersNtpServerAddrType' ntpServerAddr: type: string description: NTP server address - example: '["192.0.2.0"]' + example: + - 192.0.2.0 minPollingInterval: type: integer - description: - Minimum poll interval for NTP messages, in seconds as a power - of two. Range 3 to 17 + description: >- + Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + example: + - 3 maxPollingInterval: type: integer - description: - Maximum poll interval for NTP messages, in seconds as a power - of two. Range 3 to 17 + description: >- + Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + example: + - 17 localPriority: type: integer description: NTP server local priority + example: + - 1 authenticationOption: - $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationOption' + $ref: '#/components/schemas/TimingCapsNtpServersAuthenticationOption' authenticationKeyNum: type: integer - description: Authentication key number + description: >- + Authentication key number. This configuration is valid and shall be present if authenticationOption is set to SYMMETRIC_KEY + example: + - 1 description: NTP server detail. - example: - ntpServerAddr: '["192.0.2.0"]' - maxPollingInterval: 5 - authenticationKeyNum: 2 - localPriority: 5 - authenticationOption: '["NONE"]' - ntpServerAddrType: '["IP_ADDRESS"]' - minPollingInterval: 1 TimingCaps_PtpMasters: title: TimingCaps_PtpMasters required: - - delayReqMaxRate - ptpMasterIpAddress - ptpMasterLocalPriority + - delayReqMaxRate type: object properties: ptpMasterIpAddress: type: string description: PTP Server (referred to as "master" in IEEE 1588-2019) IP Address - example: '["192.0.2.0"]' + example: + - 192.0.2.0 ptpMasterLocalPriority: type: integer - description: - PTP Server (referred to as "master" in IEEE 1588-2019 ) local - priority + description: >- + PTP Server (referred to as "master" in IEEE 1588-2019 ) local priority + example: + - 1 delayReqMaxRate: type: integer - description: - Acceptable maximum rate of the Delay_Req messages in packets - per second + description: >- + Acceptable maximum rate of the Delay_Req messages in packets per second + example: + - 10 description: NTP server detail. - example: - ptpMasterLocalPriority: 7 - ptpMasterIpAddress: '["192.0.2.0"]' - delayReqMaxRate: 9 - TimingCaps.TimeStamp: - title: TimingCaps.TimeStamp + TimingCapsTimeStamp: + title: TimingCapsTimeStamp required: - - nanoSeconds - seconds + - nanoSeconds type: object properties: seconds: type: integer - description: - The seconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: >- + The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 1577836800 nanoSeconds: type: integer - description: - The nanoseconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: >- + The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 0 description: time - example: - seconds: 0 - nanoSeconds: 6 TimingCaps: title: TimingCaps type: object properties: timeStamp: - $ref: '#/components/schemas/TimingCaps.TimeStamp' + $ref: '#/components/schemas/TimingCapsTimeStamp' ntpServers: type: array - description: Available NTP servers items: - $ref: '#/components/schemas/TimingCaps.NtpServers' + $ref: '#/components/schemas/TimingCapsNtpServers' + description: Available NTP servers ptpMasters: type: array - description: - Number of available PTP Servers (referred to as "masters" in - IEEE 1588-2019) items: $ref: '#/components/schemas/TimingCaps_PtpMasters' - description: - This type represents the information provided by the MEC platform - in response to the Timing capabilities Query message. - example: - timeStamp: - seconds: 0 - nanoSeconds: 6 - ntpServers: - - ntpServerAddr: '["192.0.2.0"]' - maxPollingInterval: 5 - authenticationKeyNum: 2 - localPriority: 5 - authenticationOption: '["NONE"]' - ntpServerAddrType: '["IP_ADDRESS"]' - minPollingInterval: 1 - - ntpServerAddr: '["192.0.2.0"]' - maxPollingInterval: 5 - authenticationKeyNum: 2 - localPriority: 5 - authenticationOption: '["NONE"]' - ntpServerAddrType: '["IP_ADDRESS"]' - minPollingInterval: 1 - ptpMasters: - - ptpMasterLocalPriority: 7 - ptpMasterIpAddress: '["192.0.2.0"]' - delayReqMaxRate: 9 - - ptpMasterLocalPriority: 7 - ptpMasterIpAddress: '["192.0.2.0"]' - delayReqMaxRate: 9 + description: >- + Number of available PTP Servers (referred to as "masters" in IEEE 1588-2019) + description: >- + This type represents the information provided by the MEC platform in response to the Timing capabilities Query message. TrafficFilter: title: TrafficFilter type: object properties: srcAddress: type: array - description: - An IP address or a range of IP address. For IPv4, the IP address - could be an IP address plus mask, or an individual IP address, or a range - of IP addresses. For IPv6, the IP address could be an IP prefix, or a - range of IP prefixes. items: type: string + description: >- + An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. dstAddress: type: array - description: - An IP address or a range of IP address. For IPv4, the IP address - could be an IP address plus mask, or an individual IP address, or a range - of IP addresses. For IPv6, the IP address could be an IP prefix, or a - range of IP prefixes. items: type: string + description: >- + An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. srcPort: type: array - description: A port or a range of ports items: type: string + description: A port or a range of ports dstPort: type: array - description: A port or a range of ports items: type: string + description: A port or a range of ports protocol: type: array - description: Specify the protocol of the traffic filter items: type: string - token: + description: Specify the protocol of the traffic filter + tag: type: array - description: Used for token based traffic rule items: type: string + description: Used for tag based traffic rule srcTunnelAddress: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule tgtTunnelAddress: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule srcTunnelPort: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule dstTunnelPort: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule qCI: type: integer - description: - Used to match all packets that have the same Quality Class - Indicator (QCI). + description: >- + Used to match all packets that have the same Quality Class Indicator (QCI). + example: + - 1 dSCP: type: integer - description: - Used to match all IPv4 packets that have the same Differentiated - Services Code Point (DSCP) + description: >- + Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP) + example: + - 0 tC: type: integer description: Used to match all IPv6 packets that have the same Traffic Class. + example: + - 1 description: This type represents the traffic filter. - example: - srcTunnelPort: - - srcTunnelPort - - srcTunnelPort - dstAddress: - - dstAddress - - dstAddress - srcAddress: - - srcAddress - - srcAddress - srcPort: - - srcPort - - srcPort - token: - - token - - token - tC: 5 - protocol: - - protocol - - protocol - dstTunnelPort: - - dstTunnelPort - - dstTunnelPort - dSCP: 1 - dstPort: - - dstPort - - dstPort - qCI: 6 - srcTunnelAddress: - - srcTunnelAddress - - srcTunnelAddress - tgtTunnelAddress: - - tgtTunnelAddress - - tgtTunnelAddress - TrafficRule.Action: - title: TrafficRule.Action - type: string - description: - The action of the MEC host data plane when a packet matches the - trafficFilter - example: '["DROP"]' + TrafficRuleAction: + title: TrafficRuleAction enum: - DROP - FORWARD_DECAPSULATED @@ -1721,162 +3376,80 @@ components: - PASSTHROUGH - DUPLICATE_DECAPSULATED - DUPLICATE_ENCAPSULATED - TrafficRule.FilterType: - title: TrafficRule.FilterType type: string - description: - Definition of filter per FLOW or PACKET. If flow the filter match - UE->EPC packet and the reverse packet is handled in the same context - example: '["FLOW"]' + description: >- + The action of the MEC host data plane when a packet matches the trafficFilter + example: + - DROP + TrafficRuleFilterType: + title: TrafficRuleFilterType enum: - FLOW - PACKET - TrafficRule.State: - title: TrafficRule.State type: string - description: - Contains the traffic rule state. This attribute may be updated - using HTTP PUT method - example: '["ACTIVE"]' + description: >- + Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context + example: + - FLOW + TrafficRuleState: + title: TrafficRuleState enum: - ACTIVE - INACTIVE + type: string + description: >- + Contains the traffic rule state. This attribute may be updated using HTTP PUT method + example: + - ACTIVE TrafficRule: title: TrafficRule required: - - action + - trafficRuleId - filterType - priority - - state - trafficFilter - - trafficRuleId + - action + - state type: object properties: trafficRuleId: type: string description: Identify the traffic rule. - example: '["TrafficRule1"]' + example: + - TrafficRule1 filterType: - $ref: '#/components/schemas/TrafficRule.FilterType' + $ref: '#/components/schemas/TrafficRuleFilterType' priority: type: integer - description: - Priority of this traffic rule within the range 0 to 255. If - traffic rules conflict, the one with higher priority take precedence. - Value indicates the priority in descending order, i.e. with 0 as the highest - priority and 255 as the lowest priority. + description: >- + Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority. + example: + - 1 trafficFilter: type: array items: $ref: '#/components/schemas/TrafficFilter' + description: '' action: - $ref: '#/components/schemas/TrafficRule.Action' + $ref: '#/components/schemas/TrafficRuleAction' dstInterface: - maxItems: 2 type: array items: $ref: '#/components/schemas/DestinationInterface' + maxItems: 2 state: - $ref: '#/components/schemas/TrafficRule.State' + $ref: '#/components/schemas/TrafficRuleState' description: This type represents the general information of a traffic rule. - example: - action: '["DROP"]' - trafficRuleId: '["TrafficRule1"]' - dstInterface: - - interfaceType: '["TUNNEL"]' - dstIpAddress: '["192.0.2.0"]' - srcMacAddress: '["02-00-00-00-00-00"]' - tunnelInfo: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' - dstMacAddress: '["02-00-00-00-00-00"]' - - interfaceType: '["TUNNEL"]' - dstIpAddress: '["192.0.2.0"]' - srcMacAddress: '["02-00-00-00-00-00"]' - tunnelInfo: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' - dstMacAddress: '["02-00-00-00-00-00"]' - state: '["ACTIVE"]' - filterType: '["FLOW"]' - priority: 0 - trafficFilter: - - srcTunnelPort: - - srcTunnelPort - - srcTunnelPort - dstAddress: - - dstAddress - - dstAddress - srcAddress: - - srcAddress - - srcAddress - srcPort: - - srcPort - - srcPort - token: - - token - - token - tC: 5 - protocol: - - protocol - - protocol - dstTunnelPort: - - dstTunnelPort - - dstTunnelPort - dSCP: 1 - dstPort: - - dstPort - - dstPort - qCI: 6 - srcTunnelAddress: - - srcTunnelAddress - - srcTunnelAddress - tgtTunnelAddress: - - tgtTunnelAddress - - tgtTunnelAddress - - srcTunnelPort: - - srcTunnelPort - - srcTunnelPort - dstAddress: - - dstAddress - - dstAddress - srcAddress: - - srcAddress - - srcAddress - srcPort: - - srcPort - - srcPort - token: - - token - - token - tC: 5 - protocol: - - protocol - - protocol - dstTunnelPort: - - dstTunnelPort - - dstTunnelPort - dSCP: 1 - dstPort: - - dstPort - - dstPort - qCI: 6 - srcTunnelAddress: - - srcTunnelAddress - - srcTunnelAddress - tgtTunnelAddress: - - tgtTunnelAddress - - tgtTunnelAddress - TunnelInfo.TunnelType: - title: TunnelInfo.TunnelType - type: string - description: This type represents the tunnel information. - example: '["GTP_U"]' + x-etsi-notes: "NOTE 1:\tValue indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.\nNOTE 2:\tSome applications (like inline/tap) require two interfaces. The first interface in the case of inline/tap is on the client (e.g. UE) side and the second on the core network (e.g. EPC) side." + TunnelInfoTunnelType: + title: TunnelInfoTunnelType enum: - GTP_U - GRE + type: string + description: This type represents the tunnel information. + example: + - GTP_U TunnelInfo: title: TunnelInfo required: @@ -1884,35 +3457,358 @@ components: type: object properties: tunnelType: - $ref: '#/components/schemas/TunnelInfo.TunnelType' + $ref: '#/components/schemas/TunnelInfoTunnelType' tunnelDstAddress: type: string description: Destination address of the tunnel - example: '["?"]' + example: + - '192.127.4.100/32' tunnelSrcAddress: type: string description: Source address of the tunnel - example: '["?"]' + example: + - '192.127.4.101/32' description: This type represents the tunnel information. - example: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' TimeSourceStatus: title: TimeSourceStatus - type: string - description: - Platform Time Source status. 1 = TRACEABLE - time source is locked - to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the - UTC time source - example: '["TRACEABLE"]' enum: - TRACEABLE - NONTRACEABLE + type: string + description: >- + Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source + example: + - TRACEABLE + CategoryRef: + title: CategoryRef + required: + - href + - id + - name + - version + type: object + properties: + href: + type: string + description: Reference of the catalogue + example: + /example/catalogue1 + id: + type: string + description: Unique identifier of the category + example: + id12345 + name: + type: string + description: >- + Name of the category, example values include RNI, Location & Bandwidth Management + example: + RNI + version: + type: string + description: Category version + example: + version1 + description: This type represents the category reference + EndPointInfoAddress: + title: EndPointInfoAddress + required: + - host + - port + type: object + properties: + host: + type: string + description: Host portion of the address + example: + - 192.0.2.0 + port: + type: integer + description: Port portion of the address + example: + - 8080 + description: A IP address and port pair + EndPointInfoAddresses: + title: EndPointInfoAddresses + required: + - addresses + type: object + properties: + addresses: + type: array + items: + $ref: '#/components/schemas/EndPointInfoAddress' + description: >- + Entry point information of the service as one or more pairs of IP address and port. See note. + description: This type represents information about a transport endpoint. + EndPointInfoAlternative: + title: EndPointInfoAlternative + required: + - alternative + type: object + properties: + alternative: + type: object + description: >- + Entry point information of the service in a format defined by an implementation, or in an external specification. See note. + description: This type represents information about a transport endpoint. + EndPointInfoUris: + title: EndPointInfoUris + required: + - uris + type: object + properties: + uris: + type: array + items: + type: string + description: >- + Entry point information of the service as string, formatted according to URI syntax + description: This type represents information about a transport endpoint. + EndPointInfoFqdn: + title: EndPointInfoFqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + items: + type: string + description: Fully Qualified Domain Name of the service. See note. + description: 'This type represents information about a transport endpoint. ' + ServiceDependency: + properties: + requestedPermissions: + description: >- + Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4]. The format of this attribute is left for the data model design stage. + minItems: 0 + type: string + serCategory: + $ref: '#/components/schemas/CategoryRef' + serName: + description: 'The name of the service, for example, RNIS, LocationService, etc.' + type: string + serTransportDependencies: + description: >- + Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note. + items: + $ref: '#/components/schemas/TransportDependency' + minItems: 0 + type: array + version: + description: The version of the service. + type: string + required: + - serName + - version + type: object + x-etsi-notes: "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application." + TransportDependency: + properties: + labels: + description: >- + Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table. + items: + type: string + minItems: 1 + type: array + serializers: + description: >- + Information about the serializers in this transport binding, as defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport. + items: + $ref: '#/components/schemas/SerializerType' + minItems: 1 + type: array + transport: + $ref: '#/components/schemas/TransportDescriptor' + required: + - transport + - serializers + - labels + type: object + TransportDescriptor: + properties: + protocol: + description: >- + The name of the protocol used. Shall be set to "HTTP" for a REST API. + type: string + security: + $ref: '#/components/schemas/SecurityInfo' + type: + $ref: '#/components/schemas/TransportType' + version: + description: The version of the protocol used. + type: string + required: + - type + - protocol + - version + - security + type: object + SerializerType: + title: SerializerType + enum: + - JSON + - XML + - PROTOBUF3 + type: string + description: The enumeration represents types of serializers + example: + JSON + SecurityInfo: + title: SecurityInfo + type: object + properties: + oAuth2Info: + $ref: '#/components/schemas/SecurityInfoOAuth2Info' + description: This type represents security information related to a transport + SecurityInfoOAuth2Info: + title: SecurityInfoOAuth2Info + required: + - grantTypes + - tokenEndpoint + type: object + properties: + grantTypes: + maxItems: 4 + minItems: 1 + type: array + items: + $ref: '#/components/schemas/SecurityInfoOAuth2InfoGrantType' + description: List of supported OAuth 2.0 grant types. + tokenEndpoint: + type: string + description: The token endpoint + example: + /mecSerMgmtApi/security/TokenEndPoint + description: Parameters related to use of OAuth 2.0 + SecurityInfoOAuth2InfoGrantType: + title: SecurityInfoOAuth2InfoGrantType + enum: + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS + type: string + description: OAuth 2.0 grant type + example: + OAUTH2_CLIENT_CREDENTIALS + TransportType: + title: TransportType + enum: + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + type: string + description: The enumeration TransportType represents types of transports + example: + REST_HTTP + FeatureDependency: + properties: + featureName: + description: 'The name of the feature, for example, UserApps, UEIdentity, etc.' + type: string + version: + description: The version of the feature. + type: string + required: + - featureName + - version + type: object + AppProfile: + type: object + required: + - easId + - endPt + - acIds + - scheds + - permLvl + - easFeats + - svcContSupp + - appLocs + properties: + easId: + description: The identifier of the EAS + type: string + example: + appName + endPt: + description: The version of the feature. + oneOf: + - $ref: '#/components/schemas/EndPointInfoUris' + - $ref: '#/components/schemas/EndPointInfoFqdn' + - $ref: '#/components/schemas/EndPointInfoAddresses' + - $ref: '#/components/schemas/EndPointInfoAlternative' + acIds: + type: array + items: + type: string + minItems: 1 + description: Identities of the Application Clients that can be served by the EAS + provId: + type: string + description: Identifier of the ASP that provides the EAS. + example: + appProvider1 + type: + description: The category or type of EAS. + type: string + scheds: + type: array + items: + type: string + minItems: 1 + description: The availability schedule of the EAS. + svcArea: + type: string + description: >- + The list of geographical and topological areas that the EAS serves. ACs in the UE that are outside the area will not be served. + svcKpi: + type: string + description: Service characteristics provided by the EAS. + permLvl: + type: array + items: + type: string + minItems: 1 + description: level of service permissions supported by the EAS. + easFeats: + type: array + items: + type: string + minItems: 1 + description: Service features supported by the EAS. + svcContSupp: + type: array + items: + type: string + minItems: 1 + description: The ACR scenarios supported by the EAS for service continuity. + appLocs: + type: array + items: + type: string + minItems: 1 + description: >- + List of DNAI(s) and the N6 traffic information associated with the EAS. + avlRep: + type: integer + description: >- + The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration. + example: + 1577836800 + status: + type: string + description: 'EAS status information. ' requestBodies: AppTerminationNotification: content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotification' - required: true + required: true \ No newline at end of file diff --git a/config/api/bwm-api.yaml b/config/api/bwm-api.yaml index 4c57bba456c549e5534806d6e8c3534ddfdcfe9d..bc6f7d98106882cff4a8e724ff32e0b12b3af937 100644 --- a/config/api/bwm-api.yaml +++ b/config/api/bwm-api.yaml @@ -1,21 +1,25 @@ openapi: 3.0.0 info: + title: AdvantEDGE Bandwidth Management API + description: "Bandwidth Management Sercice is AdvantEDGE's implementation of [ETSI\ + \ MEC ISG MEC015 Traffic Management APIs](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/03.01.01_60/gs_MEC015v030101p.pdf)\ + \

[Copyright (c) ETSI 2017](https://forge.etsi.org/etsi-forge-copyright-notice.txt)\ + \

**Micro-service**
[meep-tm](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-tm/server/bwm)\ + \

**Type & Usage**
Edge Service used by edge applications that want to get\ + \ information about BWM Info and Session(s) in the network

**Note**
AdvantEDGE\ + \ supports all Bandwidth Management API endpoints." contact: - url: 'https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api' - title: ETSI GS MEC 015 - Bandwidth Management API - version: 2.2.1 - description: >- - 'The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI -

**Note**
MEC Sandbox supports all BWM API endpoints; complete details on the BWM API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf).' + name: InterDigital AdvantEDGE Support + email: AdvantEDGE@InterDigital.com license: - name: BSD-3-Clause - url: 'https://forge.etsi.org/legal-matters' + name: Apache 2.0 + url: https://github.com/InterDigitalInc/AdvantEDGE/blob/master/LICENSE + version: 3.1.1 externalDocs: - description: ETSI MEC015 V2.2.1 Traffic Management API - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf + description: ETSI GS MEC015 V3.1.1 Traffic Management APIs + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/03.01.01_60/gs_MEC015v030101p.pdf servers: - - url: 'https://localhost/sandboxname/bwm/v1' +- url: https://localhost/sandboxname/bwm/v1 tags: - name: bwm paths: @@ -69,8 +73,8 @@ paths: type: string responses: "200": - description: Upon success, a response body containing an array of the bandwidthAllocations - is returned. + description: "Upon success, a response body containing an array of the bandwidthAllocations\ + \ is returned." content: application/json: schema: @@ -79,22 +83,28 @@ paths: $ref: '#/components/schemas/BwInfo' x-content-type: application/json "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too many requests: It is used when a rate limiter has triggered." content: application/problem+json: schema: @@ -117,29 +127,36 @@ paths: required: true responses: "201": - description: Upon success, the HTTP response shall include a 'Location' - HTTP header that contains the resource URI of the created resource. + description: "Upon success, the HTTP response shall include a 'Location'\ + \ HTTP header that contains the resource URI of the created resource." content: application/json: schema: $ref: '#/components/schemas/BwInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : It is used to indicate the server cannot provide any\ + \ of the content formats supported by the clients" content: application/problem+json: schema: @@ -171,22 +188,28 @@ paths: schema: $ref: '#/components/schemas/BwInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too many requests: It is used when a rate limiter has triggered." content: application/problem+json: schema: @@ -195,8 +218,8 @@ paths: tags: - bwm summary: Update the information about a specific bandwidthAllocation - description: Updates the information about a bandwidthAllocation resource. As - specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics. + description: "Updates the information about a bandwidthAllocation resource.\ + \ As specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics." operationId: bandwidthAllocationPUT parameters: - name: allocationId @@ -224,30 +247,37 @@ paths: schema: $ref: '#/components/schemas/BwInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : It is used to indicate the server cannot provide any\ + \ of the content formats supported by the clients" content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "412": - description: 'Precondition failed : used when a condition has failed during - conditional requests, e.g. when using ETags to avoid write conflicts when - using PUT' + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts\ + \ when using PUT" content: application/problem+json: schema: @@ -270,18 +300,18 @@ paths: type: string responses: "204": - description: Upon success, a response 204 No Content without any response - body is returned. + description: "Upon success, a response 204 No Content without any response\ + \ body is returned." "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." content: application/problem+json: schema: @@ -291,10 +321,10 @@ paths: - bwm summary: Modify the information about a specific existing bandwidthAllocation by sending updates on the data structure - description: Updates the information about a bandwidthAllocation resource. As - specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource - on top of the existing resource state by just including the changes ('deltas') - in the request body. + description: "Updates the information about a bandwidthAllocation resource.\ + \ As specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource\ + \ on top of the existing resource state by just including the changes ('deltas')\ + \ in the request body." operationId: bandwidthAllocationPATCH parameters: - name: allocationId @@ -322,36 +352,536 @@ paths: schema: $ref: '#/components/schemas/BwInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : It is used to indicate the server cannot provide any\ + \ of the content formats supported by the clients" content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "412": - description: 'Precondition failed : used when a condition has failed during - conditional requests, e.g. when using ETags to avoid write conflicts when - using PUT' + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts\ + \ when using PUT" content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' + /subscriptions: + get: + tags: + - unsupported + summary: Get Subscription Links + description: The GET method is used to request information about the subscriptions for this requestor. + parameters: + - name: subscription_type + in: query + required: false + schema: + type: string + enum: + - bw_chg + description: "Query parameter to filter on a specific subscription type. Permitted values: bw_chg." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + responses: + '200': + description: Successful response with the list of links to requestor's subscriptions. + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionLinkList' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: It is used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : It is used to indicate the server cannot provide any\ + \ of the content formats supported by the clients" + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too many requests: It is used when a rate limiter has triggered." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + post: + tags: + - unsupported + summary: Create a new subscription + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BwChgEventSubscription' + responses: + '201': + description: "Created: Indicates successful resource creation, where the resource URI shall be\ + \ returned in the HTTP Location header field." + content: + application/json: + schema: + $ref: '#/components/schemas/BwChgEventSubscription' + '400': + description: "Bad Request: Incorrect parameters were passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '401': + description: "Unauthorized: The client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '403': + description: "Forbidden: The operation is not allowed given the current status of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: "Not Found: The client provided a URI that cannot be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '406': + description: "Not Acceptable: The server cannot provide any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '415': + description: "Unsupported Media Type: The server or the client does not support the content type of the entity body." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '422': + description: "Unprocessable Entity: The server understands the content type of the request entity and\ + \ the syntax of the request entity is correct but the server is unable to process the contained instructions." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '429': + description: "Too Many Requests: A rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + callbacks: + BwChgEventNotification: + '{$request.body#/callbackReference}': + post: + tags: + - callbacks + summary: Create callback + description: The POST method delivers a notification from the BWM service to the subscriber + operationId: BwChgEventNotification_POST + requestBody: + $ref: '#/components/requestBodies/BwChgEventNotification' + responses: + "204": + description: The notification was delivered successfully. + '401': + description: "Unauthorized: The client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '429': + description: "Too Many Requests: A rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /subscriptions/{subscriptionId}: + get: + tags: + - unsupported + summary: Retrieve individual subscription information + description: The GET method is used to retrieve information about this subscription + parameters: + - name: subscriptionId + in: path + required: true + schema: + type: string + description: The ID of the subscription to be updated. + responses: + '200': + description: Successful response with the data type describing the specific BWM event subscription. + content: + application/json: + schema: + $ref: '#/components/schemas/BwChgEventSubscription' + '400': + description: "Bad Request: Incorrect parameters were passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '401': + description: "Unauthorized: The client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '403': + description: "Forbidden: The operation is not allowed given the current status of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: "Not Found: The client provided a URI that cannot be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '406': + description: "Not Acceptable: The server cannot provide any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '429': + description: "Too Many Requests: A rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + put: + tags: + - unsupported + summary: Update an existing subscription + description: The PUT method is used to update the existing subscription. + parameters: + - name: subscriptionId + in: path + required: true + schema: + type: string + description: The ID of the subscription to be updated. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BwChgEventSubscription' + responses: + '200': + description: Successful response with the data type describing the updated subscription. + content: + application/json: + schema: + $ref: '#/components/schemas/BwChgEventSubscription' + '400': + description: "Bad Request: Incorrect parameters were passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '401': + description: "Unauthorized: The client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '403': + description: "Forbidden: The operation is not allowed given the current status of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: "Not Found: The client provided a URI that cannot be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '406': + description: "Not Acceptable: The server cannot provide any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '412': + description: "Precondition Failed: A condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '422': + description: "Unprocessable Entity: The server understands the content type of the request entity and\ + \ the syntax of the request entity is correct but the server is unable to process the contained instructions." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '429': + description: "Too Many Requests: A rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - unsupported + summary: Cancel an existing subscription + description: The DELETE method is used to cancel the existing subscription + parameters: + - name: subscriptionId + in: path + required: true + schema: + type: string + description: The ID of the subscription to be canceled. + responses: + '204': + description: "No Content: Successful operation with no content returned." + '401': + description: "Unauthorized: The client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '403': + description: "Forbidden: The operation is not allowed given the current status of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: "Not Found: The client provided a URI that cannot be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '429': + description: "Too Many Requests: A rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' components: schemas: + BwChgEventSubscription: + type: object + required: + - subscriptionType + - filterCriteria + properties: + subscriptionType: + type: string + description: Shall be set to "BwChgEventSubscription". + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + callbackReference: + type: string + format: uri + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' + _links: + $ref: '#/components/schemas/BwChgEventSubscription_links' + filterCriteria: + type: array + items: + type: object + description: List of filtering criteria for the BW change event subscription. Any filtering \ + \ criteria from below, which is included in the request, shall also be included in the response. + required: + - appInsId + properties: + appInsId: + type: string + description: Application instance identifier. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + ueIp: + type: string + description: Source address identity of session. See note 2. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + x-etsi-notes: "NOTE 1: At least one of callbackReference and websockNotifConfig shall be provided by the \ + \ service consumer. If both are provided, it is up to BWM service to choose an alternative and return only \ + \ that alternative in the response, as described in ETSI GS MEC 009 [6], clause 6.12a. \ + \ NOTE 2: For the case of session specific bw allocation, ueIp shall be used to identify subscription per UE per application." + WebsockNotifConfig: + type: object + properties: + websocketUri: + type: string + format: uri + description: Set by BWM service to indicate to the service consumer the web socket URI to be used for delivering notifications. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + requestWebsocketUri: + type: boolean + description: Set to TRUE by the service consumer to indicate that Websocket delivery is requested. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + BwChgEventSubscription_links: + type: object + required: + - self + properties: + self: + $ref: '#/components/schemas/LinkType' + SubscriptionLinkList: + type: object + properties: + _links: + $ref: '#/components/schemas/SubscriptionLinkList_links' + SubscriptionLinkList_links: + type: object + description: List of hyperlinks related to the resource. + required: + - self + properties: + self: + $ref: '#/components/schemas/LinkType' + subscriptions: + type: array + description: The service consumer's subscriptions. + items: + $ref: '#/components/schemas/SubscriptionLinkList_links_subscriptions' + SubscriptionLinkList_links_subscriptions: + type: object + required: + - href + - subscriptionType + properties: + href: + type: string + format: uri + description: The URI referring to the subscription. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: Uri + subscriptionType: + type: string + description: Type of the subscription. The string shall be set according to the "subscriptionType" attribute \ + \ of the associated subscription data type event defined in clause 7.3. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + # BwChgEventNotification: + # type: object + # required: + # - notificationType + # - dataVolDispersion + # properties: + # notificationType: + # type: string + # description: Shall be set to "BwChgEventNotification". + # x-etsi-mec-cardinality: 1 + # x-etsi-mec-origin-type: String + # timeStamp: + # $ref: '#/components/schemas/Timestamp' + # dataVolDispersion: + # type: array + # description: List of data volume dispersion information. + # items: + # $ref: '#/components/schemas/DataVolDispersion' + # _links: + # $ref: '#/components/schemas/BwChgEventNotification_links' + DataVolDispersion: + type: object + required: + - dataVol + - appInsId + properties: + dataVol: + type: integer + format: int32 + description: Sum of data volume (UL/DL) exchanged per UE per applications, ETSI TS 123 288 [i.4]. See note. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: Uint32 + appInsId: + type: string + description: Application instance identifier. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + ueIp: + type: string + description: Source address identity of session. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + x-etsi-notes: "NOTE: The dataVolDispersion can be reported either as the total data volume of the session or \ + \ periodically. dataVolDispersion shall provide information on data consumption per UE, in case of higher/lower data \ + \ consumption, the service consumer can update the allocated bandwidth." + BwChgEventNotification_links: + type: object + description: Link to resource related to this notification. + required: + - subscription + properties: + subscription: + $ref: '#/components/schemas/LinkType' BwInfo: required: - allocationDirection @@ -367,8 +897,9 @@ components: x-etsi-mec-origin-type: String allocationDirection: type: string - description: 'The direction of the requested BW allocation: 00 = Downlink - (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical' + description: "The direction of the requested BW allocation: 00 = Downlink\ + \ (towards the UE) 01 = Uplink (towards the application/session) 10 =\ + \ Symmetrical" x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String appInsId: @@ -383,7 +914,7 @@ components: x-etsi-mec-origin-type: String fixedAllocation: type: string - description: Size of requested fixed BW allocation in [bps] + description: "Size of requested fixed BW allocation in [bps]" x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String fixedBWPriority: @@ -397,8 +928,8 @@ components: x-etsi-mec-origin-type: Enum requestType: type: integer - description: 'Numeric value (0 - 255) corresponding to specific type of - consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION' + description: "Numeric value (0 to 255) corresponding to specific type of\ + \ consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION" enum: - 0 - 1 @@ -407,16 +938,16 @@ components: sessionFilter: minItems: 0 type: array - description: Session filtering criteria, applicable when requestType is - set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define - a single session only. In case multiple sessions match sessionFilter the - request shall be rejected + description: "Session filtering criteria, applicable when requestType is\ + \ set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall\ + \ define a single session only. In case multiple sessions match sessionFilter\ + \ the request shall be rejected" items: $ref: '#/components/schemas/BwInfo_sessionFilter' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Structure (inlined) timeStamp: - $ref: '#/components/schemas/BwInfo_timeStamp' + $ref: '#/components/schemas/Timestamp' example: timeStamp: seconds: 1 @@ -442,6 +973,7 @@ components: x-etsi-ref: 7.2.2 BwInfoDeltas: required: + - allocationId - appInsId - requestType type: object @@ -453,8 +985,9 @@ components: x-etsi-mec-origin-type: String allocationDirection: type: string - description: 'The direction of the requested BW allocation: 00 = Downlink - (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical' + description: "The direction of the requested BW allocation: 00 = Downlink\ + \ (towards the UE) 01 = Uplink (towards the application/session) 10 =\ + \ Symmetrical" x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String appInsId: @@ -464,7 +997,7 @@ components: x-etsi-mec-origin-type: String fixedAllocation: type: string - description: Size of requested fixed BW allocation in [bps] + description: "Size of requested fixed BW allocation in [bps]" x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String fixedBWPriority: @@ -478,8 +1011,8 @@ components: x-etsi-mec-origin-type: Enum_inlined requestType: type: integer - description: 'Numeric value (0 - 255) corresponding to specific type of - consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION' + description: "Numeric value (0 to 255) corresponding to specific type of\ + \ consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION" enum: - 0 - 1 @@ -488,10 +1021,10 @@ components: sessionFilter: minItems: 0 type: array - description: Session filtering criteria, applicable when requestType is - set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define - a single session only. In case multiple sessions match sessionFilter the - request shall be rejected + description: "Session filtering criteria, applicable when requestType is\ + \ set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall\ + \ define a single session only. In case multiple sessions match sessionFilter\ + \ the request shall be rejected" items: $ref: '#/components/schemas/BwInfoDeltas_sessionFilter' x-etsi-mec-cardinality: 0..N @@ -521,7 +1054,7 @@ components: x-etsi-mec-origin-type: Uint32 title: type: string - description: A short, human-readable summary of the problem type + description: "A short, human-readable summary of the problem type" x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String type: @@ -531,22 +1064,38 @@ components: format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI + OperationActionType: + type: string + description: Operation that is being performed on the MEC application instance. + enum: + - STOPPING + - TERMINATING + LinkType: + required: + - href + type: object + properties: + href: + type: string + description: URI referring to a resource + format: uri + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Uri BwInfo_sessionFilter: type: object properties: dstAddress: type: string - description: >- - Destination address identity of session. The string for a IPv4 - address shall be formatted in the "dotted decimal" notation as - defined in IETF RFC 1166 [10]. The string for a IPv6 address shall - be formatted according to clause 4 of IETF RFC 5952 [11], with in - CIDR notation [12] used to provide the routing prefix. + description: "Destination address identity of session. The string for a\ + \ IPv4 address shall be formatted in the \"dotted decimal\" notation as\ + \ defined in IETF RFC 1166 [10]. The string for a IPv6 address shall be\ + \ formatted according to clause 4 of IETF RFC 5952 [11], with in CIDR\ + \ notation IETF RFC 4632 [12] used to provide the routing prefix." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String dstPort: - description: Destination port identity of session type: string + description: Destination port identity of session x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String protocol: @@ -554,19 +1103,18 @@ components: description: Protocol number x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String - sourceIp: - type: string - description: >- - Source address identity of session. The string for a IPv4 address - shall be formatted in the "dotted decimal" notation as defined in - IETF RFC 1166 [10]. The string for a IPv6 address shall be formatted - according to clause 4 of IETF RFC 5952 [11], with in CIDR notation - [12] used to provide the routing prefix. + sourceAddress: + type: string + description: "Source address identity of session. The string for a IPv4\ + \ address shall be formatted in the \"dotted decimal\" notation as defined\ + \ in IETF RFC 1166 [10]. The string for a IPv6 address shall be formatted\ + \ according to clause 4 of IETF RFC 5952 [11], with in CIDR notation IETF RFC 4632 [12]\ + \ used to provide the routing prefix." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourcePort: - description: Source port identity of session type: string + description: Source port identity of session x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String example: @@ -575,7 +1123,7 @@ components: dstPort: dstPort sourceIp: sourceIp dstAddress: dstAddress - BwInfo_timeStamp: + Timestamp: required: - nanoSeconds - seconds @@ -583,15 +1131,15 @@ components: properties: nanoSeconds: type: integer - description: The nanoseconds part of the Time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: "The nanoseconds part of the Time. Time is defined as Unix-time\ + \ since January 1, 1970, 00:00:00 UTC" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 seconds: type: integer - description: The seconds part of the Time. Time is defined as Unixtime since - January 1, 1970, 00:00:00 UTC + description: "The seconds part of the Time. Time is defined as Unixtime\ + \ since January 1, 1970, 00:00:00 UTC" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 @@ -605,17 +1153,16 @@ components: properties: dstAddress: type: string - description: >- - Destination address identity of session. The string for a IPv4 - address shall be formatted in the "dotted decimal" notation as - defined in IETF RFC 1166 [10]. The string for a IPv6 address shall - be formatted according to clause 4 of IETF RFC 5952 [11], with in - CIDR notation [12] used to provide the routing prefix. + description: "Destination address identity of session. The string for a\ + \ IPv4 address shall be formatted in the \"dotted decimal\" notation as\ + \ defined in IETF RFC 1166 [10]. The string for a IPv6 address shall be\ + \ formatted according to clause 4 of IETF RFC 5952 [11], with in CIDR\ + \ notation IETF RFC 4632 [12] used to provide the routing prefix." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String dstPort: - description: Destination port identity of session type: string + description: Destination port identity of session x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String protocol: @@ -623,54 +1170,20 @@ components: description: Protocol number x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String - sourceIp: - type: string - description: >- - Source address identity of session. The string for a IPv4 address - shall be formatted in the "dotted decimal" notation as defined in - IETF RFC 1166 [10]. The string for a IPv6 address shall be formatted - according to clause 4 of IETF RFC 5952 [11], with in CIDR notation - [12] used to provide the routing prefix. + sourceAddress: + type: string + description: "Source address identity of session. The string for a IPv4\ + \ address shall be formatted in the \"dotted decimal\" notation as defined\ + \ in IETF RFC 1166 [10]. The string for a IPv6 address shall be formatted\ + \ according to clause 4 of IETF RFC 5952 [11], with in CIDR notation IETF RFC 4632 [12]\ + \ used to provide the routing prefix." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourcePort: - description: 'Source port identity of session ' type: string + description: 'Source port identity of session ' x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String - responses: - "204": - description: Upon success, a response 204 No Content without any response body - is returned. - "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - "404": - description: 'Not Found : used when a client provided a URI that cannot be - mapped to a valid resource URI.' - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - "412": - description: 'Precondition failed : used when a condition has failed during - conditional requests, e.g. when using ETags to avoid write conflicts when - using PUT' - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' parameters: Path.allocationId: name: allocationId @@ -721,3 +1234,27 @@ components: type: array items: type: string + requestBodies: + BwChgEventNotification: + content: + application/json: + schema: + type: object + required: + - notificationType + - dataVolDispersion + properties: + notificationType: + type: string + description: Shall be set to "BwChgEventNotification". + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + timeStamp: + $ref: '#/components/schemas/Timestamp' + dataVolDispersion: + type: array + description: List of data volume dispersion information. + items: + $ref: '#/components/schemas/DataVolDispersion' + _links: + $ref: '#/components/schemas/BwChgEventNotification_links' diff --git a/config/api/capif-mgmt.yaml b/config/api/capif-mgmt.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d823b211707ef70e072ceed8c39c959e3862e9b0 --- /dev/null +++ b/config/api/capif-mgmt.yaml @@ -0,0 +1,1692 @@ +openapi: 3.0.0 +info: + title: MEC service management realized by CAPIF APIs + description: The ETSI MEC ISG MEC011 MEC Service Management realized by CAPIF APIs + described using OpenAPI + contact: + email: cti_support@etsi.org + license: + name: BSD-3-Clause + url: https://forge.etsi.org/legal-matters + version: 3.2.1 +externalDocs: + description: "ETSI GS MEC011 Application Enablement API, V3.2.1" + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.02.01_60/gs_mec011v030201p.pdf +servers: +- url: https://localhost/sandboxname/service-apis/v1 + description: Service APIs +- url: https://localhost/sandboxname/published-apis/v1 + description: Published APIs +- url: https://localhost/sandboxname/capif-events/v1 + description: CAPIF Events APIs +tags: +- name: services +- name: appServices +- name: appSubscriptions +- name: callbacks +paths: + /allServiceAPIs: + get: + tags: + - services + description: | + This method retrieves information about a list of mecService resources. + This method is typically used in the "service availability query" procedure. + **Example:** Retrieve all available services with specific parameters for filtering. + operationId: Services_GET + parameters: + - name: vend-spec-etsi-mec-serinstance-id + in: query + description: | + Vendor-specific query parameter for service instance ID. The "target" attribute shall be set to "/apiId". + **Example:** {\"target\": \"/apiId\", \"value\": \"serviceInstanceId\"} + required: false + style: form + explode: true + schema: + type: string + - name: api-name + in: query + description: | + This query parameter corresponds to the parameter "ser_name" as defined in clause 8.2.3.3.1. + As opposed to the cardinality of ser_instance_id defined in clause 8.2.3.3.1 that is 0..N, this parameter only supports a cardinality of 0..1. + **Example:** ["ServiceName1"] + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: api-invoker-id + in: query + description: | + If the Discover_Service_API is produced by the MEC platform towards the MEC applications, this identifier shall be set to the value of the "appInstanceId" (see clause 7.1.2.6). + If the Discover_Service_API is produced by the CCF, the provisions in clause 8.1.2.2.3.1 of 3GPP TS 29.222 [21] apply. + **Example:** "InvokerAppInstanceId" + required: false + style: form + explode: true + schema: + type: string + - name: vend-spec-etsi-mec-sercategory-id + in: query + description: | + Vendor-specific query parameter for service category ID. The "target" attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/serCategory/id". + **Example:** {\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/serCategory/id\", \"value\": \"serviceCategoryId\"} + required: false + style: form + explode: true + schema: + type: string + - name: vend-spec-etsi-mec-consumed-local-only + in: query + description: | + Vendor-specific query parameter for consumed local only. The "target" attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/consumedLocalOnly". + **Example:** {\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/consumedLocalOnly\", \"value\": \"true\"} + required: false + style: form + explode: true + schema: + type: string + - name: vend-spec-etsi-mec-is-local + in: query + description: | + Vendor-specific query parameter for is local. The "target" attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/isLocal". + **Example:** {\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/isLocal\", \"value\": \"true\"} + required: false + style: form + explode: true + schema: + type: string + - name: vend-spec-etsi-mec-scope-of-locality + in: query + description: | + Vendor-specific query parameter for scope of locality. The "target" attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/scopeOfLocality". + **Example:** {\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/scopeOfLocality\", \"value\": \"scopeOfLocalityValue\"} + required: false + style: form + explode: true + schema: + type: string + responses: + "200": + description: | + The response body contains the result of the search over the list of registered APIs. + **Example:** JSON array of discovered APIs with details like "apiId", "serName", "scopeOfLocality", etc. + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoveredAPIs' + "307": + description: | + Temporary redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + **Example:** "https://alternative-ccf.example.com/resource" + headers: + Location: + description: Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "308": + description: | + Permanent redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + **Example:** "https://permanent-ccf.example.com/resource" + headers: + Location: + description: Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "400": + description: | + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + **Example:** Invalid "vend-spec-etsi-mec-serinstance-id" format. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: | + Forbidden. The operation is not allowed given the current status of the resource. + **Example:** Access restricted to registered users only. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: | + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + **Example:** Non-existent service identifier provided in the URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "414": + description: | + Request URI Too Long. Indicates that the server is refusing to process the request because the URI is too long. + **Example:** Excessive query parameters length in the request URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + servers: + - url: https://localhost/sandboxname/service-apis/v1 + /{apfId}/service-apis: + get: + tags: + - appServices + summary: get services + description: This method retrieves information about a list of mecService resources. + This method is typically used in "service availability query" procedure + operationId: AppServices_GET + parameters: + - name: apfId + in: path + description: "Identifier of the entity that registers the service API. If\ + \ the MEC app plays the role of the APF, this variable shall be set to the\ + \ value of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform\ + \ plays the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: | + Successful case. The representation(s) of the "Individual APF published API" resource(s) of the requested service API(s) shall be returned in the response body. If there are no active "Individual APF published API" resources at the CCF, an empty array is returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ServiceAPIDescription' + x-content-type: application/json + "307": + description: | + Temporary redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "308": + description: | + Permanent redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + post: + tags: + - appServices + summary: Publish a new API + description: Enables a service consumer to request to publish a new API at the + CCF. + operationId: AppServices_POST + parameters: + - name: apfId + in: path + description: "Identifier of the entity that registers the service API. If\ + \ the MEC app plays the role of the APF, this variable shall be set to the\ + \ value of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform\ + \ plays the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAPIDescription' + example: + apiName: "mec030-1-new" + aefProfiles: + - aefId: "sandboxTransport" + versions: + - "3.1.1" + interfaceDescriptions: + uris: + - "http://my.callback.com/sbx2cmq8bn/mep1/vis/v2/" + fqdn: null + addresses: null + alternative: null + vendorSpecific-urn:etsi:mec:capifext:transport-info: + name: "REST" + type: "REST_HTTP" + protocol: "HTTP" + version: "2.0" + vendorSpecific-urn:etsi:mec:capifext:service-info: + serializer: "JSON" + state: "ACTIVE" + scopeOfLocality: "MEC_SYSTEM" + consumedLocalOnly: true + isLocal: true + category: + href: "catalogueHref" + id: "visId" + name: "V2XI" + version: "v2" + required: true + responses: + "201": + description: | + Successful case. The service API is successfully published. The URI of the created "Individual APF published API" resource shall be returned in an HTTP "Location" header. + headers: + Location: + description: | + Contains the URI of the newly created resource, according to the structure: {apiRoot}/published-apis//{apfId}/service-apis/{serviceApiId} + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAPIDescription' + servers: + - url: https://localhost/sandboxname/published-apis/v1 + /{apfId}/service-apis/{serviceApiId}: + get: + tags: + - appServices + description: The HTTP GET method allows a service consumer to retrieve an existing + "Individual APF published API" resource at the CCF. + operationId: AppServicesServiceId_GET + parameters: + - name: apfId + in: path + description: "Identifier of the entity that registers the service API. If\ + \ the MEC app plays the role of the APF, this variable shall be set to the\ + \ value of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform\ + \ plays the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + - name: serviceApiId + in: path + description: Represents a MEC service instance. + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: | + Successful case. The service API is successfully published and a representation of the created "Individual APF published API" resource shall be returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ServiceAPIDescription' + x-content-type: application/json + "307": + description: | + Temporary redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "308": + description: | + Permanent redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + put: + tags: + - appServices + description: The HTTP PUT method allows a service consumer to update an existing + "Individual APF published API" resource at the CCF. + operationId: AppServicesServiceId_PUT + parameters: + - name: apfId + in: path + description: "Identifier of the entity that registers the service API. If\ + \ the MEC app plays the role of the APF, this variable shall be set to the\ + \ value of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform\ + \ plays the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + - name: serviceApiId + in: path + description: Represents a MEC service instance. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAPIDescription' + example: + apiName: "mec030-1-new" + aefProfiles: + - aefId: "sandboxTransport" + versions: + - "3.1.1" + interfaceDescriptions: + uris: + - "http://my.callback.com/sbx2cmq8bn/mep1/vis/v2/" + fqdn: null + addresses: null + alternative: null + vendorSpecific-urn:etsi:mec:capifext:transport-info: + name: "REST" + type: "REST_HTTP" + protocol: "HTTP" + version: "2.0" + vendorSpecific-urn:etsi:mec:capifext:service-info: + serializer: "JSON" + state: "ACTIVE" + scopeOfLocality: "MEC_SYSTEM" + consumedLocalOnly: true + isLocal: true + category: + href: "catalogueHref" + id: "visId" + name: "V2XI" + version: "v2" + required: true + responses: + "200": + description: | + Successful case. The service API is successfully published and a representation of the created "Individual APF published API" resource shall be returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ServiceAPIDescription' + x-content-type: application/json + "204": + description: Successful case. The "Individual APF published API" resource + is successfully updated and no content is returned in the response body. + "307": + description: | + Temporary redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "308": + description: | + Permanent redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "Precondition Failed. It is used when a condition has failed\ + \ during conditional requests, e.g. when using ETags to avoid write conflicts." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - appServices + description: The HTTP DELETE method allows a service consumer to delete an existing + "Individual APF published API" resource at the CCF + operationId: AppServicesServiceId_DELETE + parameters: + - name: apfId + in: path + description: "Identifier of the entity that registers the service API. If\ + \ the MEC app plays the role of the APF, this variable shall be set to the\ + \ value of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform\ + \ plays the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + - name: serviceApiId + in: path + description: Represents a MEC service instance. + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: Successful case. The "Individual APF published API" resource + is successfully deleted. + "307": + description: | + Temporary redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "308": + description: | + Permanent redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + patch: + tags: + - appServices + description: The HTTP PATCH method allows a service consumer to modify an existing + "Individual APF published API" resource at the CCF. + operationId: AppServicesServiceId_PATCH + parameters: + - name: apfId + in: path + description: "Identifier of the entity that registers the service API. If\ + \ the MEC app plays the role of the APF, this variable shall be set to the\ + \ value of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform\ + \ plays the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + - name: serviceApiId + in: path + description: Represents a MEC service instance. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAPIDescription' + example: + aefProfiles: + - aefId: "sandboxTransport" + versions: + - "3.1.1" + interfaceDescriptions: + uris: + - "http://my.callback.com/sbx2cmq8bn/mep1/vis/v2/" + fqdn: null + addresses: null + alternative: null + vendorSpecific-urn:etsi:mec:capifext:transport-info: + name: "REST" + type: "REST_HTTP" + protocol: "HTTP" + version: "2.0" + vendorSpecific-urn:etsi:mec:capifext:service-info: + serializer: "JSON" + state: "ACTIVE" + scopeOfLocality: "MEC_SYSTEM" + consumedLocalOnly: true + isLocal: true + category: + href: "catalogueHref" + id: "visId" + name: "V2XI" + version: "v2" + required: true + responses: + "200": + description: "Successful case. The \"Individual APF published API\"\n resource\ + \ is successfully modified and a representation of \n the updated resource\ + \ shall be returned in the response \n body.\n" + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ServiceAPIDescription' + x-content-type: application/json + "204": + description: Successful case. The "Individual APF published API" resource + is successfully updated and no content is returned in the response body. + "307": + description: | + Temporary redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "308": + description: | + Permanent redirection. The response shall include a Location header field containing an alternative target URI of the resource located in an alternative CCF. + headers: + Location: + description: | + Contains an alternative target URI of the resource located in an alternative CCF. + style: simple + explode: false + schema: + type: string + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "Precondition Failed. It is used when a condition has failed\ + \ during conditional requests, e.g. when using ETags to avoid write conflicts." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + servers: + - url: https://localhost/sandboxname/published-apis/v1 + /{subscriberId}/subscriptions: + post: + tags: + - appSubscriptions + summary: Create a new CAPIF Events Subscription + description: Create a new CAPIF Events Subscription resource. + operationId: ApplicationsSubscriptions_POST + parameters: + - name: subscriberId + in: path + description: 'This variable shall be set to the value of the "appInstanceId" + (see clause 7.1.2.6). ' + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventSubscription' + example: + notificationDestination: "http://my.callback.com/mec_capif_mgmt_ser_availabilities/some-id" + events: + - "SERVICE_API_UNAVAILABLE" + eventFilters: + - apiIds: + - "0a0faac0-bcbb-4d45-b673-d37ac6d3dc13" + requestTestNotification: true + required: true + + responses: + "201": + description: | + CAPIF Events Subscription resource created successfully. The URI of the created resource shall be returned in the "Location" HTTP header + headers: + Location: + description: | + Contains the URI of the newly created resource, according to the structure: {apiRoot}/capif-events//{subscriberId}/subscriptions/{subscriptionId} + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/EventSubscription' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + callbacks: + EventNotification: + '{$request.body#/callbackReference}': + post: + tags: + - callbacks + summary: Create callback + description: "The values SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE,\ + \ and SERVICE_API_UPDATE defined in the type \"CAPIFEvent\" shall\ + \ be supported. The remaining values of that type need not be supported." + operationId: EventNotification_POST + requestBody: + $ref: '#/components/requestBodies/EventNotification' + responses: + "204": + description: ' The receipt of the Notification is acknowledged.' + deprecated: false + servers: + - url: https://localhost/sandboxname/capif-events/v1 + '/{subscriberId}/subscriptions/{subscriptionId} ': + put: + tags: + - appSubscriptions + summary: The PUT method is used to update an existing subscription resource. + description: The susbcribing entity shall initiate the HTTP PUT request message + and the CAPIF core function shall respond to the message. + operationId: ApplicationsSubscriptions_PUT + parameters: + - name: subscriberId + in: path + description: 'This variable shall be set to the value of the "appInstanceId" + (see clause 7.1.2.6). ' + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventSubscription' + example: + notificationDestination: "http://my.callback.com/mec_capif_mgmt_ser_availabilities/some-id" + events: + - "SERVICE_API_UNAVAILABLE" + eventFilters: + - apiIds: + - "0a0faac0-bcbb-4d45-b673-d37ac6d3dc13" + requestTestNotification: true + required: true + responses: + "200": + description: "The event subscription was successfully updated, and a representation\ + \ of the updated resource is returned." + content: + application/json: + schema: + $ref: '#/components/schemas/EventSubscription' + "204": + description: The event subscription was successfully updated and no content + is returned in the response body. + "307": + description: Temporary redirection. The response shall include a Location + header field containing an alternative URI of the resource located in + an alternative CAPIF core function. + headers: + Location: + description: Contains an alternative URI of the resource located in + an alternative CAPIF core function. + style: simple + explode: false + schema: + type: string + "308": + description: Permanent redirection. The response shall include a Location + header field containing an alternative URI of the resource located in + an alternative CAPIF core function. + headers: + Location: + description: Contains an alternative URI of the resource located in + an alternative CAPIF core function. + style: simple + explode: false + schema: + type: string + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - appSubscriptions + summary: Delete an existing CAPIF Event Subscription + description: This endpoint deletes an existing CAPIF Event Subscription resource. + operationId: ApplicationsSubscription_DELETE + parameters: + - name: subscriberId + in: path + description: 'This variable shall be set to the value of the "appInstanceId" + (see clause 7.1.2.6). ' + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: The individual CAPIF Events Subscription matching the subscriptionId + is deleted. + "307": + description: "Temporary redirection, during resource termination. The response\ + \ shall include a Location header field containing an alternative URI\ + \ of the resource located in an alternative CAPIF core function." + headers: + Location: + description: An alternative URI of the resource located in an alternative + CAPIF core function. + style: simple + explode: false + schema: + type: string + "308": + description: "Permanent redirection, during resource termination. The response\ + \ shall include a Location header field containing an alternative URI\ + \ of the resource located in an alternative CAPIF core function." + headers: + Location: + description: An alternative URI of the resource located in an alternative + CAPIF core function. + style: simple + explode: false + schema: + type: string + "400": + description: Bad Request. The request was invalid or cannot be served. The + exact error should be explained in the error payload. + "401": + description: Unauthorized. The request requires user authentication. + "403": + description: Forbidden. The server understood the request but refuses to + authorize it. + "404": + description: Not Found. The server has not found anything matching the Request-URI. + "500": + description: Internal Server Error. The server encountered an unexpected + condition which prevented it from fulfilling the request. + patch: + tags: + - appSubscriptions + summary: Modify an existing CAPIF Event Subscription + description: This endpoint modifies an existing CAPIF Event Subscription resource. + operationId: ApplicationsSubscription_patch + parameters: + - name: subscriberId + in: path + description: 'This variable shall be set to the value of the "appInstanceId" + (see clause 7.1.2.6). ' + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventSubscription' + example: + notificationDestination: "http://my.callback.com/mec_capif_mgmt_ser_availabilities/some-id" + events: + - "SERVICE_API_UNAVAILABLE" + eventFilters: + - apiIds: + - "0a0faac0-bcbb-4d45-b673-d37ac6d3dc13" + required: true + responses: + "200": + description: The subscription was successfully modified and a representation + of the updated resource is returned in the response body. + content: + application/json: + schema: + $ref: '#/components/schemas/EventSubscription' + "204": + description: The subscription was successfully modified and no content was + returned in the response body. + "307": + description: Temporary redirection. The response shall include a Location + header field containing an alternative URI of the resource located in + an alternative CAPIF core function. + headers: + Location: + description: Contains an alternative URI of the resource located in + an alternative CAPIF core function. + style: simple + explode: false + schema: + type: string + "308": + description: Permanent redirection. The response shall include a Location + header field containing an alternative URI of the resource located in + an alternative CAPIF core function. + headers: + Location: + description: Contains an alternative URI of the resource located in + an alternative CAPIF core function. + style: simple + explode: false + schema: + type: string + servers: + - url: https://localhost/sandboxname/capif-events/v1 +components: + schemas: + EventSubscriptionPatch: + required: + - events + type: object + properties: + events: + type: array + description: | + The events for which the subscription is modified. + items: + $ref: '#/components/schemas/CAPIFEvent' + notificationDestination: + type: string + description: | + URI to which notifications will be sent. Shall be set to the value of the "callbackReference" attribute in the "SerAvailabilityNotificationSubscription" structure. + format: uri + CAPIFEventFilter: + title: CAPIFEventFilter + type: object + properties: + apiIds: + type: array + description: Identifiers of service instances about which to report events. + items: + type: string + EventSubscription: + required: + - events + - notificationDestination + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/CAPIFEvent' + eventFilters: + type: array + items: + $ref: '#/components/schemas/CAPIFEventFilter' + notificationDestination: + type: string + description: | + URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response. + format: uri + requestTestNotification: + type: boolean + websocketNotifConfig: + type: string + example: + notificationDestination: http://example.com/aeiou + websocketNotifConfig: websocketNotifConfig + events: + - SERVICE_API_AVAILABLE + - SERVICE_API_AVAILABLE + requestTestNotification: true + CAPIFEvent: + type: string + description: | + The CAPIFEvent data type represents the type of events for which the subscription is made. + enum: + - SERVICE_API_AVAILABLE + - SERVICE_API_UNAVAILABLE + - SERVICE_API_UPDATE + CategoryRef: + required: + - href + - id + - name + - version + type: object + properties: + href: + type: string + description: Reference of the catalogue + format: uri + id: + type: string + description: Unique identifier of the category + name: + type: string + description: "Name of the category, example values include RNI, Location\ + \ & Bandwidth Management" + version: + type: string + description: Category version + description: This type represents the category reference + example: + name: name + href: http://example.com/aeiou + id: id + version: version + ProblemDetails: + required: + - detail + - status + type: object + properties: + type: + type: string + description: A URI reference according to IETF RFC 3986 that identifies + the problem type + format: uri + title: + type: string + description: "A short, human-readable summary of the problem type" + status: + type: integer + description: The HTTP status code for this occurrence of the problem + format: uint32 + detail: + type: string + description: A human-readable explanation specific to this occurrence of + the problem + instance: + type: string + description: A URI reference that identifies the specific occurrence of + the problem + format: uri + EventNotification: + type: object + properties: + events: + type: array + description: | + The values SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, and SERVICE_API_UPDATE defined in the type "CAPIFEvent" shall be supported. The remaining values of that type need not be supported. + items: + $ref: '#/components/schemas/CAPIFEvent' + SerializerType: + type: string + description: | + The enumeration SerializerType represents types of serializers. This enumeration shall be extensible. + enum: + - JSON + - XML + - PROTOBUF3 + LocalityType: + type: string + description: | + The enumeration LocalityType represents types of locality. + enum: + - MEC_SYSTEM + - MEC_HOST + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE + ServiceState: + type: string + description: | + The enumeration ServiceState represents possible states of a MEC service instance. + enum: + - ACTIVE + - INACTIVE + - SUSPENDED + DiscoveredAPIs: + type: object + properties: + serviceAPIDescriptions: + type: array + items: + $ref: '#/components/schemas/ServiceAPIDescription' + example: + serviceAPIDescriptions: + - apiName: apiName + vendorSpecific-urn:etsi:mec:capifext:service-info: + scopeOfLocality: MEC_SYSTEM + serializer: JSON + state: ACTIVE + consumedLocalOnly: true + category: + name: name + href: http://example.com/aeiou + id: id + version: version + isLocal: true + apiId: apiId + - apiName: apiName + vendorSpecific-urn:etsi:mec:capifext:service-info: + scopeOfLocality: MEC_SYSTEM + serializer: JSON + state: ACTIVE + consumedLocalOnly: true + category: + name: name + href: http://example.com/aeiou + id: id + version: version + isLocal: true + apiId: apiId + ServiceAPIDescriptionPatch: + type: object + properties: + vendorSpecific-urn:etsi:mec:capifext:service-info: + $ref: '#/components/schemas/MecServiceInfoCapifExtPatch' + ServiceAPIDescription: + type: object + properties: + apiName: + type: string + description: | + Shall be set to the value of the "serName" attribute as defined in clause 8.1.2.2. + apiId: + type: string + description: | + If present, shall be set to the value of the "serInstanceId" attribute as defined in clause 8.1.2.2. + aefProfiles: + type: array + items: + $ref: '#/components/schemas/AefProfile' + description: "AEF profile information, which includes the exposed API details (e.g., protocol). For CAPIF-4/4e interface, API publishing function shall provide this attribute to the CCF in service API publishing. For CAPIF-1/1e interface, the CCF shall provide this attribute to the API Invoker during service API discovery." + vendorSpecific-urn:etsi:mec:capifext:service-info: + $ref: '#/components/schemas/MecServiceInfoCapifExt' + example: + apiName: apiName + vendorSpecific-urn:etsi:mec:capifext:service-info: + scopeOfLocality: MEC_SYSTEM + serializer: JSON + state: ACTIVE + consumedLocalOnly: true + category: + name: name + href: http://example.com/aeiou + id: id + version: version + isLocal: true + apiId: apiId + MecServiceInfoCapifExtPatch: + type: object + properties: + serializer: + $ref: '#/components/schemas/SerializerType' + state: + $ref: '#/components/schemas/ServiceState' + scopeOfLocality: + $ref: '#/components/schemas/LocalityType' + consumedLocalOnly: + type: boolean + isLocal: + type: boolean + category: + $ref: '#/components/schemas/CategoryRef' + + MecServiceInfoCapifExt: + type: object + properties: + serializer: + $ref: '#/components/schemas/SerializerType' + state: + $ref: '#/components/schemas/ServiceState' + scopeOfLocality: + $ref: '#/components/schemas/LocalityType' + consumedLocalOnly: + type: boolean + isLocal: + type: boolean + category: + $ref: '#/components/schemas/CategoryRef' + example: + scopeOfLocality: MEC_SYSTEM + serializer: JSON + state: ACTIVE + consumedLocalOnly: true + category: + name: name + href: http://example.com/aeiou + id: id + version: version + isLocal: true + AefProfile: + type: object + properties: + aefId: + type: string + description: "AEF identifier. Shall be set to the value of the 'id' attribute as defined in clause 8.1.2.3." + versions: + type: array + items: + type: string + description: "API version. This array shall contain a single entry." + minItems: 1 + maxItems: 1 + interfaceDescriptions: + description: This type represents information about a transport endpoint + oneOf: + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Fqdn' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' + x-etsi-notes: "NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or\ + \ \"alternative\" shall be present." + vendorSpecific-urn:etsi:mec:capifext:transport-info : + $ref: '#/components/schemas/MecTransportInfoCapifExt' + description: "Additional attribute of data type MecTransportInfoCapifExt for MEC-specific CAPIF extensions related to alternative transports." + required: + - aefId + - versions + MecTransportInfoCapifExt: + type: object + properties: + name: + type: string + description: "Name of the transport info." + description: + type: string + description: "Description of the transport info." + type: + $ref: '#/components/schemas/TransportType' + protocol: + type: string + description: The name of the protocol used. Shall be set to HTTP for a REST + API. + example: "[\"HTTP\"]" + version: + type: string + description: The version of the protocol used + example: "[\"2.0\"]" + security: + $ref: '#/components/schemas/SecurityInfo' + description: "Security information of the transport." + implSpecificInfo: + type: string + description: Additional implementation specific details of the transport + description: This type represents the general information of a MEC service. + SecurityInfo.OAuth2Info.GrantType: + title: SecurityInfo.OAuth2Info.GrantType + type: string + description: OAuth 2.0 grant type + example: "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + enum: + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS + SecurityInfo.OAuth2Info: + title: SecurityInfo.OAuth2Info + required: + - grantTypes + - tokenEndpoint + type: object + properties: + grantTypes: + maxItems: 4 + minItems: 1 + type: array + description: List of supported OAuth 2.0 grant types. + items: + $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType' + tokenEndpoint: + type: string + description: The token endpoint + example: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + description: Parameters related to use of OAuth 2.0 + example: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + SecurityInfo: + title: SecurityInfo + type: object + properties: + oAuth2Info: + $ref: '#/components/schemas/SecurityInfo.OAuth2Info' + description: This type represents security information related to a transport + example: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + TransportType: + title: TransportType + type: string + description: The enumeration TransportType represents types of transports + example: "[\"REST_HTTP\"]" + enum: + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + EndPointInfo.Alternative: + title: EndPointInfo.Alternative + required: + - alternative + type: object + properties: + alternative: + type: object + description: "Entry point information of the service in a format defined\ + \ by an implementation, or in an external specification. See note." + description: This type represents information about a transport endpoint. + EndPointInfo.Address: + title: EndPointInfo.Address + required: + - host + - port + type: object + properties: + host: + type: string + description: Host portion of the address + example: "[\"192.0.2.0\"]" + port: + type: integer + description: Port portion of the address + description: A IP address and port pair + EndPointInfo.Addresses: + title: EndPointInfo.Addresses + required: + - addresses + type: object + properties: + addresses: + type: array + description: Entry point information of the service as one or more pairs + of IP address and port. See note. + items: + $ref: '#/components/schemas/EndPointInfo.Address' + EndPointInfo.Fqdn: + title: EndPointInfo.Fqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + description: Fully Qualified Domain Name of the service. See note. + items: + type: string + description: 'This type represents information about a transport endpoint. ' + EndPointInfo.Uris: + title: EndPointInfo.Uris + required: + - uris + type: object + properties: + uris: + type: array + description: "Entry point information of the service as string, formatted\ + \ according to URI syntax" + items: + type: string + description: This type represents information about a transport endpoint. + responses: + "400": + description: Bad Request. It is used to indicate that incorrect parameters were + passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized. It is used when the client did not submit the appropriate + credentials. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: "Conflict. The operation cannot be executed currently, due to a\ + \ conflict with the state of the resource. Typically, this is because the\ + \ application instance resource is in NOT_INSTANTIATED state." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "Precondition Failed. It is used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "414": + description: It is used to indicate that the server is refusing to process the + request because the request URI is longer than the server is willing or able + to process. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: Too Many Requests. It is used when a rate limiter has triggered. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + parameters: + Path.apfId: + name: apfId + in: path + description: "Identifier of the entity that registers the service API. If the\ + \ MEC app plays the role of the APF, this variable shall be set to the value\ + \ of the \"appInstanceId\" (see clause 7.1.2.6). If the MEC platform plays\ + \ the role of the APF, this variable shall be set to a specific identifier\ + \ that identifies the MEC platform. " + required: true + style: simple + explode: false + schema: + type: string + Path.subscriberId: + name: subscriberId + in: path + description: 'This variable shall be set to the value of the "appInstanceId" + (see clause 7.1.2.6). ' + required: true + style: simple + explode: false + schema: + type: string + Path.SubscriptionId: + name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string + Path.serviceApiId: + name: serviceApiId + in: path + description: Represents a MEC service instance. + required: true + style: simple + explode: false + schema: + type: string + Query.vend-spec-etsi-mec-sercategory-id: + name: vend-spec-etsi-mec-sercategory-id + in: query + description: Vendor-specific query parameter for service category ID. The "target" + attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/serCategory/id". + required: false + style: form + explode: true + schema: + type: string + example: "{\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/serCategory/id\"\ + , \"value\": \"serviceCategoryId\"}" + Query.vend-spec-etsi-mec-serinstance-id: + name: vend-spec-etsi-mec-serinstance-id + in: query + description: Vendor-specific query parameter for service instance ID. The "target" + attribute shall be set to "/apiId". + required: false + style: form + explode: true + schema: + type: string + example: "{\"target\": \"/apiId\", \"value\": \"serviceInstanceId\"}" + Query.api-name: + name: api-name + in: query + description: "This query parameter corresponds to the parameter \"ser_name\"\ + \ as defined in clause 8.2.3.3.1. As opposed to the cardinality of ser_instance_id\ + \ defined in clause 8.2.3.3.1 that is 0..N, this parameter only supports a\ + \ cardinality of 0..1." + required: false + style: form + explode: true + schema: + type: array + items: + type: string + Query.api-invoker-id: + name: api-invoker-id + in: query + description: "If the Discover_Service_API is produced by the MEC platform towards\ + \ the MEC applications, this identifier shall be set to the value of the \"\ + appInstanceId\" (see clause 7.1.2.6). If the Discover_Service_API is produced\ + \ by the CCF, the provisions in clause 8.1.2.2.3.1 of 3GPP TS 29.222 [21]\ + \ apply. " + required: false + style: form + explode: true + schema: + type: string + Query.vend-spec-etsi-mec-scope-of-locality: + name: vend-spec-etsi-mec-scope-of-locality + in: query + description: Vendor-specific query parameter for scope of locality. The "target" + attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/scopeOfLocality". + required: false + style: form + explode: true + schema: + type: string + example: "{\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/scopeOfLocality\"\ + , \"value\": \"scopeOfLocalityValue\"}" + Query.vend-spec-etsi-mec-is-local: + name: vend-spec-etsi-mec-is-local + in: query + description: Vendor-specific query parameter for is local. The "target" attribute + shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/isLocal". + required: false + style: form + explode: true + schema: + type: string + example: "{\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/isLocal\"\ + , \"value\": \"true\"}" + Query.vend-spec-etsi-mec-consumed-local-only: + name: vend-spec-etsi-mec-consumed-local-only + in: query + description: Vendor-specific query parameter for consumed local only. The "target" + attribute shall be set to "/vendorSpecific-urn:etsi:mec:capifext:service-info/consumedLocalOnly". + required: false + style: form + explode: true + schema: + type: string + example: "{\"target\": \"/vendorSpecific-urn:etsi:mec:capifext:service-info/consumedLocalOnly\"\ + , \"value\": \"true\"}" + requestBodies: + EventNotification: + content: + application/json: + schema: + $ref: '#/components/schemas/EventNotification' + required: true diff --git a/config/api/dai-api.yaml b/config/api/dai-api.yaml index c7ca5ddec691958b8e6d326e7e62ce9f184bb27a..b911f57646989b8f184435b917402b218d950903 100644 --- a/config/api/dai-api.yaml +++ b/config/api/dai-api.yaml @@ -7,10 +7,10 @@ info: license: name: BSD-3-Clause url: https://forge.etsi.org/legal-matters - version: 2.2.1 + version: 3.1.1 externalDocs: - description: ETSI GS MEC016 V2.2.1 Device application interface - url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/02.02.01_60/gs_MEC016v020201p.pdf + description: ETSI GS MEC016 V3.1.1 Device application interface + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/03.01.01_60/gs_mec016v030101p.pdf servers: - url: https://localhost/sandboxname/dev_app/v1 tags: @@ -353,88 +353,6 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' - /subscriptions/{subscriptionId}: - post: - tags: - - app_term - summary: MEC011 Application Termination notification for self termination - description: Terminates itself. - operationId: mec011AppTerminationPOST - parameters: - - name: subscriptionId - in: path - description: "Refers to created subscription, where the VIS API allocates\ - \ a unique resource name for this subscription" - required: true - style: simple - explode: false - schema: - type: string - requestBody: - description: Termination notification details - content: - application/json: - schema: - $ref: '#/components/schemas/AppTerminationNotification' - example: - notificationType: AppTerminationNotification - operationAction: TERMINATING - maxGracefulTimeout: 10 - _links: - subscription: - href: http://mec011Server.example.com/mec_app_support/v1/applications/appId1234/subscriptions/sub123 - confirmTermination: - href: http://mec011Server.example.com/mec_app_support/v1/confirm_termination - required: true - responses: - "204": - description: No Content - x-swagger-router-controller: notifications - delete: - tags: - - unsupported - summary: Used to cancel the existing subscription. - description: Used to cancel the existing subscription. - operationId: individualSubscriptionDELETE - parameters: - - name: subscriptionId - in: path - description: "Refers to created subscription, where the VIS API allocates\ - \ a unique resource name for this subscription" - required: true - style: simple - explode: false - schema: - type: string - responses: - "204": - description: No Content - "401": - description: "Unauthorized : used when the client did not submit credentials." - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - "403": - description: "Forbidden : operation is not allowed given the current status\ - \ of the resource." - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - "404": - description: "Not Found : used when a client provided a URI that cannot\ - \ be mapped to a valid resource URI." - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - "429": - description: "Too Many Requests : used when a rate limiter has triggered." - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' components: schemas: AddressChangeNotification: @@ -943,70 +861,6 @@ components: format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI - Links: - required: - - self - type: object - properties: - self: - $ref: '#/components/schemas/LinkType' - description: Hyperlink related to the resource. This shall be only included - in the HTTP responses and in HTTP PUT requests. - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: Structure (inlined) - LinkType: - required: - - href - type: object - properties: - href: - type: string - description: URI referring to a resource - format: uri - x-etsi-mec-cardinality: "1" - x-etsi-mec-origin-type: Uri - example: - href: http://example.com/aeiou - x-etsi-ref: 6.5.13 - AppTerminationNotification: - required: - - _links - - maxGracefulTimeout - - notificationType - - operationAction - type: object - properties: - notificationType: - type: string - description: Shall be set to AppTerminationNotification. - operationAction: - $ref: '#/components/schemas/OperationActionType' - maxGracefulTimeout: - type: integer - description: Maximum timeout value in seconds for graceful termination or - graceful stop of an application instance. - format: uint32 - _links: - $ref: '#/components/schemas/AppTerminationNotification__links' - description: This type represents the information that the MEC platform notifies - the subscribed application instance about the corresponding application instance - termination/stop. - OperationActionType: - type: string - description: Operation that is being performed on the MEC application instance. - enum: - - STOPPING - - TERMINATING - AppTerminationNotification__links: - required: - - subscription - type: object - properties: - subscription: - $ref: '#/components/schemas/LinkType' - confirmTermination: - $ref: '#/components/schemas/LinkType' - description: Object containing hyperlinks related to the resource. AppContext_appInfo_userAppInstanceInfo: type: object properties: @@ -1115,7 +969,6 @@ components: $ref: '#/components/schemas/AppContext_appInfo_userAppInstanceInfo' x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: array (Structure inlined) - description: "" example: appSoftVersion: appSoftVersion appDVersion: appDVersion @@ -1179,7 +1032,6 @@ components: format: uri x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: URI - example: null ApplicationList_appInfo_appCharcs: type: object properties: @@ -1292,7 +1144,6 @@ components: value shall not exceed 32 characters. x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - description: "" example: appCharcs: serviceCont: 5 @@ -1492,7 +1343,6 @@ components: $ref: '#/components/schemas/ApplicationLocationAvailability_appInfo_availableLocations' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: array (Structure (inline)) - description: "" example: appSoftVersion: appSoftVersion appDVersion: appDVersion diff --git a/config/api/fed-api.yaml b/config/api/fed-api.yaml new file mode 100644 index 0000000000000000000000000000000000000000..baf80bcf4a7b98c4ef1a70d230708659e7d3d7ed --- /dev/null +++ b/config/api/fed-api.yaml @@ -0,0 +1,1517 @@ +openapi: 3.0.0 +info: + title: ETSI GS MEC 040 - MEC Federation enablement APIs + description: The ETSI MEC ISG MEC040 Federation enablement API described using OpenAPI + contact: + url: https://forge.etsi.org/rep/mec/gs040-fed-enablement-api + license: + name: BSD-3-Clause + url: https://forge.etsi.org/legal-matters + version: 3.2.1 +externalDocs: + description: "ETSI GS MEC 040 Federation enablement API, v3.2.1" + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/040/03.02.01_60/gs_MEC040v030201p.pdf +servers: +- url: https://localhost/sandboxname/fed_enablement/v1 +tags: +- name: systemInfo +- name: subscription +- name: fedServiceInfo +paths: + /fed_resources/systems: + get: + tags: + - systemInfo + summary: Retrieve a list of systems resources (see clause 6 for data model) + of federation members. + description: "The GET method retrieves the information of a list of systems\ + \ resources of federation members. This method is typically used in the sequence\ + \ of \"MEC system discovery\" as described in clause 5.2.2.2. The method shall\ + \ comply with the URI query parameters, request and response data structures,\ + \ and response codes, as specified in Tables 7.3.3.1-1 and 7.3.3.1-2." + operationId: systeminfoGET + parameters: + - name: systemId + in: query + description: Identifier of the MEC system. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + x-exportParamName: Query.systemId + - name: systemName + in: query + description: The name of the MEC system. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + x-exportParamName: Query.systemName + - name: systemProvider + in: query + description: Provider of the MEC system. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + x-exportParamName: Query.systemProvider + responses: + "200": + description: It is used to indicate that the query for retrieving systems + resource(s) is successful. Response body containing one or multiple systems + resources shall be returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SystemInfo' + x-content-type: application/json + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + post: + tags: + - systemInfo + summary: Create new systems resource for a given MEC system. + description: "The POST method creates the information of systems resources to\ + \ the MEC federator. This method is typically used in the sequence of \"Registration\ + \ of MEC system to the federation\" as described in clause 5.2.2.1. The method\ + \ shall comply with the URI query parameters, request and response data structures,\ + \ and response codes, as specified in Tables\_7.3.3.4-1 and 7.3.3.4-2." + operationId: systeminfoPOST + requestBody: + description: Entity body in the request contains SystemInfo to be created. + The attribute "systemId" shall be absent. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemInfo' + required: true + responses: + "201": + description: |- + It is used to indicate that the systems resource is successfully created. + + The HTTP response includes a "Location" HTTP header that contains the URI of the created resource. + content: + application/json: + schema: + $ref: '#/components/schemas/fed_resources_systems_body' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /fed_resources/systems/{systemId}: + get: + tags: + - systemInfo + summary: Retrieve the systems resource of the federation member with systemId + as its system identifier. + description: "The GET method retrieves the systems resource information. This\ + \ method is typically used in the sequence of \"MEC system discovery\" as\ + \ described in clause 5.2.2.2. The method shall comply with the URI query\ + \ parameters, request and response data structures, and response codes, as\ + \ specified in Tables 7.4.3.1-1 and 7.4.3.1-2." + operationId: systeminfoByIdGET + parameters: + - name: systemId + in: path + description: Identifier of the MEC system. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.systemId + responses: + "200": + description: It is used to indicate that the query for retrieving systems + resource is successful. Response body containing one systems resource + shall be returned. + content: + application/json: + schema: + $ref: '#/components/schemas/fed_resources_systems_body' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - systemInfo + summary: Delete the systems resource for a given MEC system. + description: "The DELETE method deletes the information of systems resources\ + \ stored in the MEF. This method is typically used in the sequence of \"Deregistration\ + \ of MEC system to the federation\" as described in clause 5.2.2.1.1. The\ + \ method shall comply with the URI query parameters, request and response\ + \ data structures, and response codes, as specified in Tables 7.4.3.5-1 and\ + \ 7.4.3.5-2." + operationId: systeminfoByIdDELETE + parameters: + - name: systemId + in: path + description: Identifier of the MEC system. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.systemId + responses: + "204": + description: No Content + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + patch: + tags: + - systemInfo + summary: Update the systems resource for a given MEC system. + description: "The PATCH method updates the information of systems resources\ + \ stored in the MEC federator through previous registration. This method is\ + \ typically used in the sequence of \"Update of MEC system to the federation\"\ + \ as described in clause 5.2.2.2. The method shall comply with the URI query\ + \ parameters, request and response data structures, and response codes, as\ + \ specified in Tables 7.4.3.3-1 and 7.4.3.3-2." + operationId: systeminfoByIdPATCH + parameters: + - name: systemId + in: path + description: Identifier of the MEC system. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.systemId + requestBody: + description: It contains attributes to be update. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemInfoUpdate' + required: true + responses: + "200": + description: It is used to indicate that the systems resource is successfully + updated. + content: + application/json: + schema: + $ref: '#/components/schemas/fed_resources_systems_body' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /subscriptions: + get: + tags: + - subscription + summary: Retrieve information on subscriptions for notifications + description: Queries information on subscriptions for notifications + operationId: subscriptionsGET + parameters: + - name: subscriptionType + in: query + description: Query parameter is used to filter a specific subscription type + required: false + style: form + explode: true + schema: + type: string + - name: systemId + in: query + description: Identifier of the MEC system + required: false + style: form + explode: true + schema: + type: string + responses: + "200": + description: Response body contains the list of links to requestor's subscriptions + is returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionLinkList' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + post: + tags: + - subscription + summary: Create a new subscription + description: Creates a new subscription to to MEF + operationId: subscriptionPOST + requestBody: + description: Subscription to be created + content: + application/json: + schema: + $ref: '#/components/schemas/SystemUpdateNotificationSubscription' + required: true + responses: + "201": + description: Successful subscription response + content: + application/json: + schema: + $ref: '#/components/schemas/SystemUpdateNotificationSubscription' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /subscriptions/{subscriptionId}: + get: + tags: + - subscription + summary: Retrieve information on current specific subscription + description: "Queries information about an existing subscription, identified\ + \ by its self-referring URI returned on creation\"" + operationId: subscriptionGET + parameters: + - name: subscriptionId + in: path + description: "Subscription Id, specifically the \\\"self\\\" returned in the\ + \ subscription request" + required: true + style: simple + explode: false + schema: + type: string + format: uri + responses: + "200": + description: Subscription information regarding subscription notifications + content: + application/json: + schema: + $ref: '#/components/schemas/SystemUpdateNotificationSubscription' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + put: + tags: + - subscription + summary: Modify an existing subscription + description: "Updates an existing subscription, identified by its self-referring\ + \ URI returned on creation" + operationId: subscriptionPUT + parameters: + - name: subscriptionId + in: path + description: "Subscription Id, specifically the \\\"self\\\" returned in the\ + \ subscription request\"" + required: true + style: simple + explode: false + schema: + type: string + format: uri + requestBody: + description: Subscription to be modified + content: + application/json: + schema: + $ref: '#/components/schemas/SystemUpdateNotificationSubscription' + required: true + responses: + "200": + description: Successful subscription modification + content: + application/json: + schema: + $ref: '#/components/schemas/SystemUpdateNotificationSubscription' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - subscription + summary: Cancel an existing subscription + description: "Cancels an existing subscription, identified by its self-referring\ + \ URI returned on creation (initial POST)" + operationId: subscriptionDELETE + parameters: + - name: subscriptionId + in: path + description: "Subscription Id, specifically the \\\"self\\\" returned in the\ + \ subscription request\"" + required: true + style: simple + explode: false + schema: + type: string + format: uri + responses: + "204": + description: No Content + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /fed_resources/systems/{systemId}/services: + get: + tags: + - fedServiceInfo + summary: Retrieves the information of all MEC services hosted by the MEC system + description: Retrieves the information of all MEC services hosted by the MEC + system associated with the systemId + operationId: servicesGET + parameters: + - name: systemId + in: path + description: Identifier of the MEC system. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.systemId + - name: seInstancerId + in: query + description: Indicator of a MEC service offered for MEC federation. + required: false + style: form + explode: true + schema: + type: string + x-exportParamName: Query.seInstancerId + - name: serName + in: query + description: The name of the service. + required: false + style: form + explode: true + schema: + type: string + x-exportParamName: Query.serName + - name: serCategory + in: query + description: A Category reference. + required: false + style: form + explode: true + schema: + type: string + x-exportParamName: Query.serCategory + responses: + "200": + description: It is used to indicate that the query for retrieving systems + resource(s) is successful. Response body containing one or multiple systems + resources shall be returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FedServiceInfo' + x-content-type: application/json + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /fed_resources/systems/{systemId}/services/{serviceId}: + get: + tags: + - fedServiceInfo + summary: Retrieves the information of a specific MEC service hosted by the MEC + system associated with the systemId and serviceId + description: Retrieves the information of a specific MEC service hosted by the + MEC system associated with the systemId and serviceId + operationId: serviceGET + parameters: + - name: systemId + in: path + description: Identifier of the MEC system. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.systemId + - name: serviceId + in: path + description: Service identifier. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.serviceId + responses: + "200": + description: "Upon success, a response body containing data type describing\ + \ the specific subscription data type is returned." + content: + application/json: + schema: + $ref: '#/components/schemas/FedServiceInfo' + "400": + description: "Bad Request: used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status\ + \ of the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' +components: + schemas: + ProblemDetails: + type: object + properties: + type: + type: string + description: A URI reference according to IETF RFC 3986 that identifies + the problem type + format: uri + title: + type: string + description: "A short, human-readable summary of the problem type" + status: + type: integer + description: The HTTP status code for this occurrence of the problem + format: uint32 + detail: + type: string + description: A human-readable explanation specific to this occurrence of + the problem + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + instance: + type: string + description: A URI reference that identifies the specific occurrence of + the problem + format: uri + FedServiceInfo: + title: FedServiceInfo + required: + - mecHostInformation + - serviceInfo + - systemId + type: object + properties: + systemId: + type: string + description: Identifier of the MEC system. + mecHostInformation: + $ref: '#/components/schemas/MecHostInformation' + serviceInfo: + $ref: '#/components/schemas/ServiceInfo' + description: This data type represents the general information of a MEC service + in a MEC federation. The attributes of the FedServiceInfo shall follow the + indications provided in Table 6.2.4-1. + example: + systemId: systemId + serviceInfo: + serCategory: + name: name + href: href + id: id + version: version + transportsSupported: + - serializers: + - JSON + - JSON + transport: + implSpecificInfo: implSpecificInfo + protocol: protocol + security: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + name: name + description: description + type: REST_HTTP + version: version + - serializers: + - JSON + - JSON + transport: + implSpecificInfo: implSpecificInfo + protocol: protocol + security: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + name: name + description: description + type: REST_HTTP + version: version + serName: serName + version: version + mecHostInformation: + hostName: hostName + hostId: hostId + SystemInfo: + title: SystemInfo + required: + - systemId + - systemName + - systemProvider + type: object + properties: + systemId: + type: string + description: "Identifier of the MEC system. For the uniqueness of the identifier\ + \ across the federated MEC systems, UUID format [i.9] is recommended.\ + \ Shall be absent in POST request, and present otherwise." + systemName: + type: string + description: The name of the MEC system. This is how the MEC system identifies + other MEC systems + systemProvider: + type: string + description: Provider of the MEC system. + description: This type represents an information provided by the MEC orchestrator + as a part of the "Registration of MEC system to the federation + example: + systemId: systemId + systemName: systemName + systemProvider: systemProvider + ServiceInfo: + title: SystemInfo + required: + - serName + - transportsSupported + - version + type: object + properties: + serName: + type: string + description: The name of the service + serCategory: + $ref: '#/components/schemas/CategoryRef' + version: + type: string + description: The version of the service + transportsSupported: + type: array + items: + $ref: '#/components/schemas/TransportsSupported' + description: The ServiceDescriptor data type describes a MEC service produced + by a service-providing MEC application. + example: + serCategory: + name: name + href: href + id: id + version: version + transportsSupported: + - serializers: + - JSON + - JSON + transport: + implSpecificInfo: implSpecificInfo + protocol: protocol + security: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + name: name + description: description + type: REST_HTTP + version: version + - serializers: + - JSON + - JSON + transport: + implSpecificInfo: implSpecificInfo + protocol: protocol + security: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + name: name + description: description + type: REST_HTTP + version: version + serName: serName + version: version + SystemInfoUpdate: + title: SystemInfoUpdate + type: object + properties: + systemName: + type: string + description: The name of the MEC system. This is how the MEC system identifies + other MEC systems. + endpoint: + $ref: '#/components/schemas/EndPointInfo' + description: "This type represents an information provided by MEC orchestrator\ + \ as a part of the \nUpdate of MEC system(s) to the federation.\n" + EndPointInfo: + title: EndPointInfo + type: object + properties: + uris: + type: array + description: "Entry point information of the service as string, formatted\ + \ according to URI syntax (see IETF RFC 3986 [8]). Shall be used for REST\ + \ APIs. See note." + items: + type: string + fqdn: + type: array + description: Fully Qualified Domain Name of the service. See note. + items: + type: string + addresses: + type: array + items: + $ref: '#/components/schemas/Addresses' + alternative: + type: string + description: "Entry point information of the service in a format defined\ + \ by an implementation, or in an external specification. See\_note." + description: "NOTE: Exactly one of \"uris\", \"fqdn\", \"addresses\" or \"alternative\"\ + \ shall be present. \n" + example: + uris: + - uris + - uris + addresses: + - port: 0 + host: host + - port: 0 + host: host + fqdn: + - fqdn + - fqdn + alternative: alternative + Addresses: + required: + - host + - port + type: object + properties: + host: + type: string + description: Host portion of the address. + port: + type: integer + description: Port portion of the address. + description: Entry point information of the service as one or more pairs of + IP address and port. See note. + example: + port: 0 + host: host + SystemUpdateNotificationSubscription: + title: SystemUpdateNotificationSubscription + required: + - callbackReference + - subscriptionType + type: object + properties: + subscriptionType: + type: string + description: Shall be set to "SystemUpdateNotificationSubscription". + callbackReference: + type: string + description: URI selected by the MEC orchestrator to receive notifications + on the subscribed MEC system information updates in the MEC federation. + This shall be included in both the request and the response. + format: uri + links: + $ref: '#/components/schemas/links' + systemId: + minItems: 0 + type: array + description: "Identifier(s) to uniquely specify the target MEC system(s)\ + \ for the subscription. If absent, the subscription should include all\ + \ MEC systems in the MEC federation." + items: + type: string + expiryDeadline: + $ref: '#/components/schemas/TimeStamp' + description: This type represents a subscription to the notifications from the + MEC federator related to information update of the MEC systems in the MEC + federation. + example: + systemId: + - systemId + - systemId + subscriptionType: subscriptionType + callbackReference: http://example.com/aeiou + expiryDeadline: + seconds: 0 + nanoSeconds: 6 + links: + self: + href: http://example.com/aeiou + SystemUpdateNotification: + title: SystemUpdateNotification + required: + - links + - notificationType + - updatedSystemInfo + type: object + properties: + notificationType: + type: string + description: Shall be set to "SystemUpdateNotification". + updatedSystemInfo: + minItems: 1 + type: array + description: Updated information of the MEC system(s) in the MEC federation. + items: + $ref: '#/components/schemas/SystemInfo' + links: + $ref: '#/components/schemas/links1' + description: This type represents the information that the MEC federator notifies + the subscribed MEC orchestrator about the information update of the MEC systems + in the MEC federation. + TimeStamp: + title: TimeStamp + required: + - nanoSeconds + - seconds + type: object + properties: + seconds: + type: integer + description: "The seconds part of the time. Time is defined as Unixtime\ + \ since January 1, 1970, 00:00:00 UTC." + format: uint32 + nanoSeconds: + type: integer + description: "The nanoseconds part of the time. Time is defined as Unix-time\ + \ since January 1, 1970, 00:00:00 UTC." + format: uint32 + description: The expiration time of the subscription determined by the MEC Federation + Enablement Service. + example: + seconds: 100 + nanoSeconds: 1000000 + links: + title: links + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + description: Object containing hyperlinks related to the resource. This shall + only be included in the HTTP responses. + example: + self: + href: http://example.com/aeiou + links1: + title: links1 + required: + - subscription + type: object + properties: + subscription: + $ref: '#/components/schemas/LinkType' + description: Object containing hyperlinks related to the resource. + LinkType: + title: LinkType + required: + - href + type: object + properties: + href: + type: string + description: URI referring to a resource. + format: uri + description: Self-referring URI. The URI shall be unique within the MEC Federation + Enablement API as it acts as an ID for the subscription (SubscriptionId). + example: + href: http://example.com/aeiou + SubscriptionLinkList: + required: + - _links + type: object + properties: + _links: + $ref: '#/components/schemas/links' + subscription: + type: array + items: + $ref: '#/components/schemas/SubscriptionLinkList_subscription' + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + example: + _links: + self: + href: http://example.com/aeiou + subscription: + - subscriptionType: subscriptionType + href: http://example.com/aeiou + - subscriptionType: subscriptionType + href: http://example.com/aeiou + SubscriptionLinkList_subscription: + required: + - href + - subscriptionType + type: object + properties: + href: + type: string + description: The URI referring to the subscription. + format: uri + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: URI + subscriptionType: + type: string + description: "Type of the subscription. The string shall be set according\ + \ to the \"subscriptionType\" attribute of the associated subscription\ + \ data type defined in 6.3.2, 6.3.3. and 6.3.5:\n“AssocStaSubscription”\ + \n“StaDataRateSubscription”\n“MeasurementReportSubscription”" + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + example: + subscriptionType: subscriptionType + href: http://example.com/aeiou + MecHostInformation: + title: MecHostInformation + required: + - hostId + type: object + properties: + hostName: + type: string + description: Human-readable name of MEC host + hostId: + type: string + description: Deployment-specific information to identify a MEC host + description: The data type represents the parameters of MEC host information + example: + hostName: hostName + hostId: hostId + TransportsSupported: + title: TransportsSupported + required: + - serializers + type: object + properties: + transport: + $ref: '#/components/schemas/TransportDescriptor' + serializers: + type: array + description: "Information about the serializers in this binding, as defined\ + \ in the SerializerTypes type in ETSI GS MEC 011" + items: + $ref: '#/components/schemas/SerializerType' + description: Indicates transports and serialization formats supported made available + to the service-consuming application. Defaults to REST + JSON if absent. + example: + serializers: + - JSON + - JSON + transport: + implSpecificInfo: implSpecificInfo + protocol: protocol + security: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + name: name + description: description + type: REST_HTTP + version: version + CategoryRef: + title: CategoryRef + required: + - href + - id + - name + - version + type: object + properties: + href: + type: string + description: Reference of the catalogue. + id: + type: string + description: Unique identifier of the category. + name: + type: string + description: Name of the category. + version: + type: string + description: Category version. + description: This type represents the category reference. + example: + name: name + href: href + id: id + version: version + TransportDescriptor: + title: TransportDescriptor + required: + - name + - protocol + - security + - type + - version + type: object + properties: + name: + type: string + description: The name of this transport. + description: + type: string + description: Human-readable description of this transport. + protocol: + type: string + description: The name of the protocol used. Shall be set to HTTP for a REST + API. + security: + $ref: '#/components/schemas/SecurityInfo' + type: + $ref: '#/components/schemas/TransportTypes' + version: + type: string + description: The version of the protocol used. + implSpecificInfo: + type: string + description: Additional implementation specific details of the transport. + example: + implSpecificInfo: implSpecificInfo + protocol: protocol + security: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + name: name + description: description + type: REST_HTTP + version: version + TransportTypes: + type: string + description: The enumeration TransportType represents types of transports. + enum: + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + x-etsi-ref: 8.1.6.4 + x-etsi-mec-extensible: true + x-etsi-mec-enumeration-table: + - value: REST_HTTP + description: "RESTful API using HTTP (as defined in IETF RFC 9110 [11])." + - value: MB_TOPIC_BASED + description: "Topic-based message bus which routes messages to receivers based\ + \ on subscriptions, if a pattern passed on subscription matches the topic\ + \ of the message. EXAMPLE MQTT (see [i.4])." + - value: MB_ROUTING + description: "Routing-based message bus which routes messages to receivers\ + \ based on subscriptions, if a key passed on subscription is equal to the\ + \ key of the message." + - value: MB_PUBSUB + description: Publish-subscribe based message bus which distributes messages + to all subscribers. + - value: RPC + description: "Remote procedure call. EXAMPLE GRPC (see [i.5])." + - value: RPC_STREAMING + description: "Remote procedure call supporting streams of requests and responses.\ + \ EXAMPLE GRPC (see [i.5])." + - value: WEBSOCKET + description: "Websockets as defined in IETF RFC 6455 [12]." + SecurityInfo: + type: object + properties: + oAuth2Info: + $ref: '#/components/schemas/OAuth2Info' + (extensions): + minItems: 0 + type: array + description: "'Extensions for alternative transport mechanisms. These extensions\ + \ depend on the actual transport, and are out of scope of the present\ + \ document. For instance, such extensions may be used to signal the necessary\ + \ parameters for the client to use TLSbased authorization defined for\ + \ alternative transports (see ETSI GS MEC 009 [5] for more information).'\n" + items: + type: string + example: + (extensions): + - (extensions) + - (extensions) + oAuth2Info: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + OAuth2Info: + required: + - grantTypes + type: object + properties: + grantTypes: + minItems: 0 + type: array + description: | + "List of supported OAuth 2.0 grant types.\nEach entry shall be one of the following permitted values:\nOAUTH2_AUTHORIZATION_CODE (Authorization code grant type)\nOAUTH2_IMPLICIT_GRANT\n \t(Implicit grant type)\nOAUTH2_RESOURCE_OWNER\n\t(Resource owner password credentials grant type) \nOAUTH2_CLIENT_CREDENTIALS\n\t(Client credentials grant type)\nOnly the value \"OAUTH2_CLIENT_CREDENTIALS\" is supported in the present document. " + items: + type: string + enum: + - SEE_DESCRIPTION + tokenEndpoint: + type: string + description: The token endpoint. Shall be present unless the grant type + is OAUTH2_IMPLICIT_GRANT. + format: uri + description: "Parameters related to use of OAuth 2.0. Shall be present in case\ + \ OAuth 2.0 (see IETF RFC 6749 [13]) is supported to secure the provision\ + \ of the service over the transport.\n" + example: + tokenEndpoint: http://example.com/aeiou + grantTypes: + - SEE_DESCRIPTION + - SEE_DESCRIPTION + SerializerType: + title: SerializerType + type: string + description: "The enumeration SerializerType represents types of serializers.\ + \ This enumeration shall be extensible.\nNOTE: The enumeration values above\ + \ shall represent the serializers as defined by the referenced specifications.\ + \ \n" + enum: + - JSON + - XML + - PROTOBUF3 + fed_resources_systems_body: + type: object + properties: + SystemInfo: + $ref: '#/components/schemas/SystemInfo' + example: + SystemInfo: + systemId: systemId + systemName: systemName + systemProvider: systemProvider + systems_systemId_body: + type: object + properties: + SystemInfoUpdate: + $ref: '#/components/schemas/SystemInfoUpdate' + responses: + "204": + description: No Content + "400": + description: "Bad Request: used to indicate that incorrect parameters were passed\ + \ to the request." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized: used when the client did not submit credentials." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden: operation is not allowed given the current status of\ + \ the resource." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found: used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + parameters: + Query.systemId: + name: systemId + in: query + description: Identifier of the MEC system. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + x-exportParamName: Query.systemId + Path.systemId: + name: systemId + in: path + description: Identifier of the MEC system. + required: true + style: simple + explode: false + schema: + type: string + x-exportParamName: Path.systemId + Query.systemName: + name: systemName + in: query + description: The name of the MEC system. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + x-exportParamName: Query.systemName + Query.systemProvider: + name: systemProvider + in: query + description: Provider of the MEC system. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + x-exportParamName: Query.systemProvider + Query.seInstancerId: + name: seInstancerId + in: query + description: Indicator of a MEC service offered for MEC federation. + required: false + style: form + explode: true + schema: + type: string + x-exportParamName: Query.seInstancerId + Query.serName: + name: serName + in: query + description: The name of the service. + required: false + style: form + explode: true + schema: + type: string + x-exportParamName: Query.serName + Query.serCategory: + name: serCategory + in: query + description: A Category reference. + required: false + style: form + explode: true + schema: + type: string + x-exportParamName: Query.serCategory diff --git a/config/api/loc-serv-api.yaml b/config/api/loc-serv-api.yaml index 11ab0e156b203c9a0cafc0ba0a2aa0405450748e..c4a3add67faad22d3f0f47475d9c90b04db2f036 100644 --- a/config/api/loc-serv-api.yaml +++ b/config/api/loc-serv-api.yaml @@ -3,18 +3,18 @@ info: contact: url: https://forge.etsi.org/rep/mec/gs013-location-api title: ETSI GS MEC 013 - Location API - version: 2.2.1 + version: 3.1.1 description: | 'The ETSI MEC ISG MEC013 Location API described using OpenAPI. -

**Note**
MEC Sandbox supports all Location API endpoints; complete details on Location API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.02.01_60/gs_mec013v020201p.pdf)' +

**Note**
MEC Sandbox supports all Location API endpoints; complete details on Location API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/03.01.01_60/gs_mec013v030101p.pdf)' license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' externalDocs: - description: ETSI MEC013 V2.2.1 Location API - url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.02.01_60/gs_mec013v020201p.pdf' + description: ETSI MEC013 V3.1.1 Location API + url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/03.01.01_60/gs_mec013v030101p.pdf' servers: - - url: 'https://localhost/sandboxname/location/v2' + - url: 'https://localhost/sandboxname/location/v3' tags: - name: 'location' paths: @@ -22,11 +22,10 @@ paths: get: tags: - 'location' - summary: 'UE Distance Lookup of a specific UE' - description: 'UE Distance Lookup between terminals or a terminal and a location' + summary: 'Retrieves distance information between a user and a location or between two users' + description: 'The GET method is used to query information about distance from a user to a location or between two users.' operationId: distanceGET parameters: - - $ref: '#/components/parameters/Query.Requester' - $ref: '#/components/parameters/Query.AddressMandatory' - $ref: '#/components/parameters/Query.Latitude' - $ref: '#/components/parameters/Query.Longitude' @@ -57,8 +56,8 @@ paths: get: tags: - 'location' - summary: 'UE Location Lookup of a specific UE or group of UEs' - description: 'UE Location Lookup of a specific UE or group of UEs' + summary: 'Retrieves location information for specific UE (User Equipment) or group of UEs (User Equipments)' + description: 'The GET method is used to query location information about a specific UE (User Equipment) or a group of UEs (User Equipments) .' operationId: usersGET parameters: - $ref: '#/components/parameters/Query.ZoneId' @@ -91,9 +90,11 @@ paths: get: tags: - 'location' - summary: 'Zones information Lookup' - description: 'Used to get a list of identifiers for zones authorized for use by the application.' + summary: 'Retrieves information about one or more specific zones or a list of zones.' + description: 'The GET method is used to query the information about one or more specific zones or a list of zones.' operationId: zonesGET + parameters: + - $ref: '#/components/parameters/Query.ZoneId_' responses: '200': description: 'Successful response to zones request' @@ -121,8 +122,8 @@ paths: get: tags: - 'location' - summary: 'Zones information Lookup' - description: 'Used to get the information for an authorized zone for use by the application.' + summary: 'Retrieves detailed information about a specific zone by its zoneId' + description: The GET method is used to query the information about a specific zone' operationId: zonesGetById parameters: - $ref: '#/components/parameters/Path.ZoneId' @@ -153,12 +154,12 @@ paths: get: tags: - 'location' - summary: 'Radio Node Location Lookup' - description: 'Radio Node Location Lookup to retrieve a list of radio nodes associated to a zone.' + summary: 'Retrieves information about specific access points or a list of access points under a given zoneId' + description: 'The GET method is used to query the information about a specific access point or a list of access points under a zone' operationId: apGET parameters: - $ref: '#/components/parameters/Path.ZoneId' - - $ref: '#/components/parameters/Query.InterestRealm' + - $ref: '#/components/parameters/Query.AccessPointId' responses: '200': description: 'Successful response to an access point Id request' @@ -186,8 +187,8 @@ paths: get: tags: - 'location' - summary: 'Radio Node Location Lookup' - description: 'Radio Node Location Lookup to retrieve a radio node associated to a zone.' + summary: 'Retrieves detailed information about a specific access point under a given zoneId' + description: 'The GET method is used to query the information about a specific access point under a zone.' operationId: apByIdGET parameters: - $ref: '#/components/parameters/Path.ZoneId' @@ -215,16 +216,24 @@ paths: '429': $ref: '#/components/responses/429' x-swagger-router-controller: 'queries' - /subscriptions/area/circle: + /subscriptions/area: get: tags: - - 'location' - summary: 'Retrieves all active subscriptions to area change notifications' - description: 'This operation is used for retrieving all active subscriptions to area change notifications.' - operationId: areaCircleSubListGET + - 'location' + summary: 'Retrieves information about the subscriptions for this requestor.' + description: 'The GET method is used to request information about the subscriptions for this requestor.' + operationId: areaSubListGET + parameters: + - name: subscription_type + in: query + description: Filter subscriptions by type + schema: + type: string + enum: [Event] + required: false responses: '200': - description: 'Response to retrieve area subscriptions' + description: "Upon success, a response body containing the list of links to requestor's subscriptions is returned." content: application/json: schema: @@ -234,47 +243,104 @@ paths: properties: notificationSubscriptionList: $ref: '#/components/schemas/NotificationSubscriptionList' + example: + notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/area/subscription123' + subscriptionType: 'UserAreaSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/area' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' post: tags: - - 'location' - summary: 'Creates a subscription for area change notification' - description: 'Creates a subscription to the Location Service for an area change notification.' - operationId: areaCircleSubPOST + - 'location' + summary: 'Creates subscription to area notifications.' + description: 'The POST method is used to create a new subscription to area notifications.' + operationId: areaSubPOST requestBody: - description: 'Subscription to be created' required: true content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' - example: - circleNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-area-circle/some-id' - address: - - '10.100.0.4' - checkImmediate: true - enteringLeavingCriteria: 'Entering' - frequency: 1 - latitude: 43.748993 - longitude: 7.437573 - radius: 200 - trackingAccuracy: 10 + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + requestTestNotification : true + callbackReference: 'http://my.callback.com/user_area_notification/some-id' + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + locationEventCriteria: + - ENTERING_AREA_EVENT + trackingAccuracy: 10 + reportingLocationReq: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clause 6.3.8: + - UserAreaSubscription responses: '201': - description: 'Successful subscription' + description: 'Indicates successful resource creation, where the resource URI shall be returned in the HTTP Location header field.' content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'userAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user_area_notification/some-id' + requestTestNotification: true + _links: + self: + href: http://meAppServer.example.com/location/v2/subscriptions/area/subscription123 + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + '400': $ref: '#/components/responses/400' '401': @@ -285,15 +351,17 @@ paths: $ref: '#/components/responses/404' '406': $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' callbacks: notification: - '{$request.body#/circleNotificationSubscription.callbackReference.notifyURL}': + '{$request.body#/userAreaSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' description: 'Notification from Location service, content based on subscription type' - operationId: circleNotificationPOST + operationId: areaNotificationPOST requestBody: description: 'Subscription notification' required: true @@ -302,33 +370,67 @@ paths: schema: type: object properties: - subscriptionNotification: - $ref: '#/components/schemas/SubscriptionNotification' + userAreaNotification: + $ref: '#/components/schemas/UserAreaNotification' + example: + userAreaNotification: + notificationType: 'UserAreaNotification' + timestamp: + seconds: 1673507343 + nanoSeconds": 0 + address: 'acr:10.0.0.1' + userLocationEvent: 'ENTERING_AREA_EVENT' + _links: + subscription: + href: http://meAppServer.example.com/location/v2/subscriptions/area/subscription123 responses: '204': $ref: '#/components/responses/204' x-swagger-router-controller: 'subscriptions' - /subscriptions/area/circle/{subscriptionId}: + /subscriptions/area/{subscriptionId}: get: tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: areaCircleSubGET + - 'location' + summary: 'Retrieves information about a specific subscription using its subscription ID' + description: 'The GET method is used to retrieve information about this subscription.' + operationId: areaSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific zone subscription is returned.' content: application/json: schema: type: object required: - - circleNotificationSubscription + - userAreaSubscription properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/area_notification/some-id' + requestTestNotification: true + _links: + self: + href: http://meAppServer.example.com/location/v2/subscriptions/area/subscription123 + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1973507343 + nanoSeconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -344,48 +446,86 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: areaCircleSubPUT + - 'location' + summary: 'Updates an existing subscription with new data, replacing the current subscription details.' + description: 'The PUT method is used to update the existing subscription. PUT method in this case has "replace" semantics.' + operationId: areaSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' - example: - circleNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-area-circle/some-id' - address: - - '10.100.0.4' - checkImmediate: true - enteringLeavingCriteria: 'Entering' - frequency: 1 - latitude: 43.748993 - longitude: 7.437573 - radius: 200 - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/area/circle/subscription123" - trackingAccuracy: 10 + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + requestTestNotification : true + callbackReference: 'http://my.callback.com/user_area_notification/some-id' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + locationEventCriteria: + - ENTERING_AREA_EVENT + trackingAccuracy: 10 + reportingLocationReq: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clause 6.3.8: + - UserAreaSubscription + parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned.' content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' + UserAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/area_notification/some-id' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/users/subscription123" + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + expiryDeadline: + seconds: 1973507343 + nanoSeconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -405,10 +545,10 @@ paths: x-swagger-router-controller: 'subscriptions' delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: areaCircleSubDELETE + - 'location' + summary: 'Cancels the existing subscription, deleting the resource representing the subscription' + description: 'The DELETE method is used to cancel the existing subscription.' + operationId: areaSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: @@ -426,13 +566,13 @@ paths: /subscriptions/distance: get: tags: - - 'location' + - 'location' summary: 'Retrieves all active subscriptions to distance change notifications' description: 'This operation is used for retrieving all active subscriptions to a distance change notifications.' operationId: distanceSubListGET responses: '200': - description: 'Response to retrieve area subscriptions' + description: "Upon success, a response body containing the list of links to requestor's subscriptions is returned." content: application/json: schema: @@ -442,38 +582,54 @@ paths: properties: notificationSubscriptionList: $ref: '#/components/schemas/NotificationSubscriptionList' + example: + - notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123' + subscriptionType: 'UserDistanceSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/distance' post: tags: - - 'location' + - 'location' summary: 'Creates a subscription for distance change notification' - description: 'Creates a subscription to the Location Service for a distance change notification.' + description: 'The POST method is used to create a new subscription to user distance notifications.' operationId: distanceSubPOST requestBody: - description: 'Subscription to be created' required: true content: application/json: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' - example: - distanceNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-distance/some-id' - monitoredAddress: - - '10.10.0.1' - - '10.1.0.1' - checkImmediate: true - criteria: 'AllWithinDistance' - distance: 100 - frequency: 10 - referenceAddress: - - '10.100.0.1' - trackingAccuracy: 10 + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/distance_notification/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the user + distance subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.9: + - UserDistanceSubscription. responses: '201': description: 'Successful subscription' @@ -482,8 +638,29 @@ paths: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user-distance/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -494,50 +671,94 @@ paths: $ref: '#/components/responses/404' '406': $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' + '422': + $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' callbacks: notification: - '{$request.body#/distanceNotificationSubscription.callbackReference.notifyURL}': + '{$request.body#/userDistanceSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' - description: 'Notification from Location service, content based on subscription type' + description: 'Notification from Location service, content based user distance subscription type' operationId: distanceNotificationPOST requestBody: - description: 'Subscription notification' + description: 'User Distance Notification' required: true content: application/json: schema: type: object properties: - subscriptionNotification: - $ref: '#/components/schemas/SubscriptionNotification' + userDistanceNotification: + $ref: '#/components/schemas/UserDistanceNotification' + example: + userDistanceNotification: + notificationType: 'UserDistanceNotification' + timestamp: + seconds: 1673507343 + nanoSeconds": 0 + monitoredUsers: + - user: + address: 'acr:10.0.0.1' + accessPointId: '001010000000000000000000000000001' + zoneId: 'zone01' + timestamp: + seconds: 1673507343 + nanoSeconds": 0 + resourceURL: 'http://meAppServer.example.com/location/v3/queries/users' + distanceEvent: 'AllWithinDistance' + _links: + subscription: + href: 'http://meAppServer.example.com/location/v3/subscriptions/distance/subscription123' responses: '204': $ref: '#/components/responses/204' - x-swagger-router-controller: "subscriptions" + x-swagger-router-controller: 'subscriptions' /subscriptions/distance/{subscriptionId}: get: tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' + - 'location' + summary: 'Retrieve user distance subscription information using its subscription ID' + description: 'The GET method is used to retrieve information about user distance subscription subscription.' operationId: distanceSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific distance event subscription is returned.' content: application/json: schema: type: object required: - - distanceNotificationSubscription + - UserDistanceSubscription properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user-distance/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -553,49 +774,84 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' + - 'location' + summary: 'Updates a user distance subscription information with new data, replacing the current subscription details' + description: 'The PUT method is used to update the existing user distance subscription.' operationId: distanceSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' - example: - distanceNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-distance/some-id' - monitoredAddress: - - '10.10.0.1' - - '10.1.0.1' - checkImmediate: true - criteria: 'AllWithinDistance' - distance: 100 - frequency: 10 - referenceAddress: - - '10.100.0.1' - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/distance/subscription123" - trackingAccuracy: 10 + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + callbackReference: 'http://my.callback.com/distance_notification/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the user + distance subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.9: + - UserDistanceSubscription. parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned.' content: application/json: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + callbackReference: 'http://my.callback.com/user-distance/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -615,9 +871,9 @@ paths: x-swagger-router-controller: 'subscriptions' delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' + - 'location' + summary: 'Cancels the existing subscription, deleting the resource representing the subscription.' + description: 'The DELETE method is used to cancel the existing subscription.' operationId: distanceSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' @@ -633,51 +889,115 @@ paths: '429': $ref: '#/components/responses/429' x-swagger-router-controller: 'subscriptions' - /subscriptions/periodic: + /subscriptions/users: get: tags: - - 'location' - summary: 'Retrieves all active subscriptions to periodic notifications' - description: 'This operation is used for retrieving all active subscriptions to periodic notifications.' - operationId: periodicSubListGET + - 'location' + summary: 'Retrieves information about the subscriptions for the requestor' + description: 'The GET method is used to request information about the subscriptions for this requestor. Upon success, the response contains entity body with the list of links to the subscriptions that are present for the requestor.' + operationId: userSubListGET + parameters: + - name: subscription_type + in: query + description: Filter subscriptions by type + schema: + type: string + enum: [event, periodic] + required: false + - name: address + in: query + description: Address of the user + schema: + type: string + required: false responses: '200': - description: 'Response to retrieve area subscriptions' + description: 'Response to retrieve user tracking subscriptions' content: application/json: schema: - type: object - required: - - notificationSubscriptionList - properties: - notificationSubscriptionList: - $ref: '#/components/schemas/NotificationSubscriptionList' + $ref: '#/components/schemas/NotificationSubscriptionList' + example: + - notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/users/subscription123' + subscriptionType: 'UserLocationEventSubscription' + - href: 'http://meAppServer.example.com/location/v2/subscriptions/users/subscription456' + subscriptionType: 'UserLocationPeriodicSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/users' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' post: tags: - - 'location' - summary: 'Creates a subscription for periodic notification' - description: 'Creates a subscription to the Location Service for a periodic notification.' - operationId: periodicSubPOST + - 'location' + summary: 'Create subscription to UE location notification.' + description: 'The POST method is used to create a new subscription to UE location notifications. Upon success, the response contains entity body describing the created subscription.' + operationId: userSubPOST requestBody: - description: Subscription to be created required: true content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + subscriptionType: 'UserLocationEventSubscription' + clientCorrelator: "0123" + callbackReference: 'http://my.callback.com/user-location-event-notification/some-id' + address: '10.100.0.1' + requestTestNotification: true + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + locationEventCriteria: + - ENTERING_AREA_EVENT + description: | + The entity body in the request contains the data type of the specific UE location event subscription that is to be created. The available data types are: + - UserLocationEventSubscription + - UserLocationPeriodicSubscription responses: '201': - description: 'Successful subscription' + description: 'Indicates successful subscription creation.' content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + subscriptionType: 'UserLocationEventSubscription' + clientCorrelator: "0123" + callbackReference: 'http://my.callback.com/user-location-event-notification/some-id' + address: '10.100.0.1' + requestTestNotification: true + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + locationEventCriteria: + - ENTERING_AREA_EVENT '400': $ref: '#/components/responses/400' '401': @@ -690,48 +1010,74 @@ paths: $ref: '#/components/responses/406' '429': $ref: '#/components/responses/429' + callbacks: notification: - '{$request.body#/periodicNotificationSubscription.callbackReference.notifyURL}': + '{$request.body#/userLocationEventSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' description: 'Notification from Location service, content based on subscription type' - operationId: periodicNotificationPOST + operationId: userNotificationPOST requestBody: - description: 'Subscription notification' + description: 'User LocationEvent Notification' required: true content: application/json: schema: type: object properties: - subscriptionNotification: - $ref: '#/components/schemas/SubscriptionNotification' + userLocationEventNotification: + $ref: '#/components/schemas/UserLocationEventNotification' + userLocationPeriodicNotification: + $ref: '#/components/schemas/UserLocationPeriodicNotification' + example: + userLocationEventNotification: + notificationType: 'UserLocationEventNotification' + timestamp: + seconds: 1673507343 + nanoseconds: 0 + address: 'acr:10.0.0.1' + userLocationEvent: 'ENTERING_AREA_EVENT' + zoneId: 'zone01' + accessPointId: '001010000000000000000000000000001' + _links: + subscription: + href: "http://meAppServer.example.com/location/v3/subscriptions/user/subscription123" responses: '204': $ref: '#/components/responses/204' x-swagger-router-controller: 'subscriptions' - /subscriptions/periodic/{subscriptionId}: + + /subscriptions/users/{subscriptionId}: get: tags: - - 'location' + - 'location' summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: periodicSubGET + description: 'The GET method is used to retrieve information about this subscription. Upon success, the response contains entity body with the data type describing the subscription. ' + operationId: userSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific Location event subscription is returned.' content: application/json: schema: type: object required: - - periodicNotificationSubscription + - UserLocationEventSubscription properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + - userLocationEventSubscription: + subscriptionType: 'UserLocationEventSubscription' + callbackReference: 'http://my.callback.com/user-location-notification/some-id' + address: 'acr:10.0.0.1' + locationEventCriteria: + - ENTERING_AREA_EVENT '400': $ref: '#/components/responses/400' '401': @@ -747,32 +1093,61 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' + - 'location' summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: periodicSubPUT + description: 'The PUT method is used to update the existing subscription. PUT method in this case has "replace" semantics. Upon successful operation, the target resource is updated with new Data Type received within the message body of the PUT request.' + operationId: userSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/users/subscription123" + address: "10.100.0.1" + callbackReference: "http://my.callback.com/user-location-event-notification/some-id" + locationEventCriteria: + - "ENTERING_AREA_EVENT" + requestTestNotification: true + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + subscriptionType: "UserLocationEventSubscription" + description: | + The entity body in the request contains the data type of the specific UE location event subscription that is to be created. The available data types are: + - UserLocationEventSubscription + - UserLocationPeriodicSubscription + parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned. ' content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + subscriptionType: 'UserLocationEventSubscription' + callbackReference: 'http://my.callback.com/user-location-notification/some-id' + address: 'acr:10.0.0.1' + locationEventCriteria: + - ENTERING_AREA_EVENT '400': $ref: '#/components/responses/400' '401': @@ -789,13 +1164,14 @@ paths: $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' - x-swagger-router-controller: "subscriptions" + x-swagger-router-controller: 'subscriptions' + delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: periodicSubDELETE + - 'location' + summary: 'Delete a subscription' + description: 'The DELETE method is used to cancel the existing subscription. Cancellation can be made by deleting the resource that represents existing subscription.' + operationId: userSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: @@ -810,16 +1186,31 @@ paths: '429': $ref: '#/components/responses/429' x-swagger-router-controller: 'subscriptions' - /subscriptions/userTracking: + + /subscriptions/zones: get: tags: - - 'location' - summary: 'Retrieves all active subscriptions to user tracking notifications' - description: 'This operation is used for retrieving all active subscriptions to user tracking notifications.' - operationId: userTrackingSubListGET + - 'location' + summary: 'Retrieves all active subscriptions to zone notifications' + description: 'This operation is used for retrieving all active subscriptions to zone notifications.' + operationId: zoneSubListGET + parameters: + - name: subscription_type + in: query + description: Filter subscriptions by type + schema: + type: string + enum: [event, status] + required: false + - name: zoneId + in: query + description: The identity of the zone. + schema: + type: string + required: false responses: '200': - description: "Response to retrieve user tracking subscriptions" + description: "Upon success, a response body containing the list of links to requestor's subscriptions is returned." content: application/json: schema: @@ -829,49 +1220,83 @@ paths: properties: notificationSubscriptionList: $ref: '#/components/schemas/NotificationSubscriptionList' + example: + - notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/zones/subscription123' + subscriptionType: 'ZoneLocationEventSubscription' + - href: 'http://meAppServer.example.com/location/v2/subscriptions/zones/subscription456' + subscriptionType: 'ZoneStatusSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/zones' post: tags: - - 'location' - summary: 'Creates a subscription for user tracking notification' - description: 'Creates a subscription to the Location Service for user tracking change notification.' - operationId: userTrackingSubPOST + - 'location' + summary: 'Creates a subscription to zone notifications' + description: 'The POST method is used to create a new subscription to zone notifications.' + operationId: zoneSubPOST requestBody: - description: 'Subscription to be created' required: true content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' example: - userTrackingSubscription: + zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-location-event-notification/some-id' + zoneId: 'zone01' clientCorrelator: "0123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + addressList: + - 10.100.0.1 + - 10.10.0.1 + - 10.10.0.4 + - 10.100.0.2 + - 10.100.0.3 + requestTestNotification: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.6 and 6.3.7: + - ZoneLocationEventSubscription. + - ZoneStatusSubscription. responses: '201': - description: 'Successful subscription' + description: 'Indicates successful resource creation' content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' example: - userTrackingSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/userTracking/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + - zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: + notifyURL: 'http://my.callback.com/location_notifications/some-id' + zoneId: 'zone01' + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -882,15 +1307,19 @@ paths: $ref: '#/components/responses/404' '406': $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' + '422': + $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' callbacks: notification: - '{$request.body#/userTrackingSubscription.callbackReference.notifyURL}': + '{$request.body#/zoneLocationEventSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' description: 'Notification from Location service, content based on subscription type' - operationId: userTrackingNotificationPOST + operationId: zoneNotificationPOST requestBody: description: 'Subscription notification' required: true @@ -899,33 +1328,60 @@ paths: schema: type: object properties: - zonalPresenceNotification: - $ref: '#/components/schemas/ZonalPresenceNotification' + zoneLocationEventNotification: + $ref: '#/components/schemas/ZoneLocationEventNotification' + zoneStatusNotification: + $ref: '#/components/schemas/ZoneStatusNotification' + example: + - zoneLocationEventNotification: + notificationType: 'ZoneLocationEventNotification' + timestamp: + seconds: 1673507343 + nanoseconds: 0 + address: 'acr:10.0.0.1' + zoneId: 'zone01' + _links: + subscription: + href: "http://meAppServer.example.com/location/v3/subscriptions/zone/subscription123" responses: '204': $ref: '#/components/responses/204' x-swagger-router-controller: 'subscriptions' - /subscriptions/userTracking/{subscriptionId}: + + /subscriptions/zones/{subscriptionId}: get: tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: userTrackingSubGET + - 'location' + summary: 'Retrieve zone subscription information' + description: 'The GET method is used to retrieve information about zone subscription. ' + operationId: zoneSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific zone subscription is returned.' content: application/json: schema: type: object required: - - userTrackingSubscription + - zoneLocationEventSubscription + - zoneStatusSubscription properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' + example: + - zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-notification/some-id' + zoneId: 'zone01' + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline": + seconds: 1977836800 + nanoseconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -941,50 +1397,77 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: userTrackingSubPUT + - 'location' + summary: 'Updates a zone subscription information' + description: 'The PUT method is used to update the existing zone subscription.' + operationId: zoneSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' example: - userTrackingSubscription: + zoneLocationEventSubscription: + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/users/subscription123" + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-location-event-notification/some-id' + zoneId: 'zone01' clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/userTracking/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + addressList: + - 10.100.0.1 + - 10.10.0.1 + - 10.10.0.4 + - 10.100.0.2 + - 10.100.0.3 + requestTestNotification: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.6 and 6.3.7: + - ZoneLocationEventSubscription. + - ZoneStatusSubscription. + parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned.' content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' - example: - userTrackingSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/userTracking/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' + example: + - zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-notification/some-id' + zoneId: 'zone01' + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline": + seconds: 1977836800 + nanoseconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -1004,434 +1487,10 @@ paths: x-swagger-router-controller: 'subscriptions' delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: userTrackingSubDELETE - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '204': - $ref: '#/components/responses/204' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zonalTraffic: - get: - tags: - - 'location' - summary: 'Retrieves all active subscriptions to zonal traffic notifications' - description: 'This operation is used for retrieving all active subscriptions to zonal traffic change notifications.' - operationId: zonalTrafficSubListGET - responses: - '200': - description: 'Response to retrieve zonal traffic subscriptions' - content: - application/json: - schema: - type: object - required: - - notificationSubscriptionList - properties: - notificationSubscriptionList: - $ref: '#/components/schemas/NotificationSubscriptionList' - post: - tags: - - 'location' - summary: 'Creates a subscription for zonal traffic notification' - description: 'Creates a subscription to the Location Service for zonal traffic change notification.' - operationId: zonalTrafficSubPOST - requestBody: - description: 'Subscription to be created' - required: true - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - responses: - '201': - description: 'Successful subscription' - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zonalTraffic/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - callbacks: - notification: - '{$request.body#/zonalTrafficSubscription.callbackReference.notifyURL}': - post: - summary: 'Callback POST used to send a notification' - description: 'Notification from Location service, content based on subscription type' - operationId: zonalTrafficNotificationPOST - requestBody: - description: 'Subscription notification' - required: true - content: - application/json: - schema: - type: object - properties: - zonalPresenceNotification: - $ref: '#/components/schemas/ZonalPresenceNotification' - responses: - '204': - $ref: '#/components/responses/204' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zonalTraffic/{subscriptionId}: - get: - tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: zonalTrafficSubGET - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Subscription information regarding subscription notifications' - content: - application/json: - schema: - type: object - required: - - zonalTrafficSubscription - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: "subscriptions" - put: - tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: zonalTrafficSubPUT - requestBody: - description: 'Subscription to be modified' - required: true - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zonalTraffic/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Successful subscription to response to subscription notifications' - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zonalTraffic/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '412': - $ref: '#/components/responses/412' - '422': - $ref: '#/components/responses/422' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - delete: - tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: zonalTrafficSubDELETE - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '204': - $ref: '#/components/responses/204' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zoneStatus: - get: - tags: - - 'location' - summary: 'Retrieves all active subscriptions to zone status notifications' - description: 'This operation is used for retrieving all active subscriptions to zone status change notifications.' - operationId: zoneStatusSubListGET - responses: - '200': - description: 'Response to retrieve zone status subscriptions' - content: - application/json: - schema: - type: object - required: - - notificationSubscriptionList - properties: - notificationSubscriptionList: - $ref: '#/components/schemas/NotificationSubscriptionList' - post: - tags: - - 'location' - summary: 'Creates a subscription for zone status notification' - description: 'Creates a subscription to the Location Service for zone status change notification.' - operationId: zoneStatusSubPOST - requestBody: - description: 'Subscription to be created' - required: true - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - responses: - '201': - description: 'Successful subscription' - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zoneStatus/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - callbacks: - notification: - '{$request.body#/zoneStatusSubscription.callbackReference.notifyURL}': - post: - summary: 'Callback POST used to send a notification' - description: 'Notification from Location service, content based on subscription type' - operationId: zoneStatusNotificationPOST - requestBody: - description: 'Subscription notification' - required: true - content: - application/json: - schema: - type: object - properties: - zoneStatusNotification: - $ref: '#/components/schemas/ZoneStatusNotification' - responses: - '204': - $ref: '#/components/responses/204' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zoneStatus/{subscriptionId}: - get: - tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: zoneStatusSubGET - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Subscription information regarding subscription notifications' - content: - application/json: - schema: - type: object - required: - - zoneStatusSubscription - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: "subscriptions" - put: - tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: zoneStatusSubPUT - requestBody: - description: 'Subscription to be modified' - required: true - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zoneStatus/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Successful subscription to response to subscription notifications' - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zoneStatus/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '412': - $ref: '#/components/responses/412' - '422': - $ref: '#/components/responses/422' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - delete: - tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: zoneStatusSubDELETE + - 'location' + summary: 'Cancel a zone subscription' + description: 'The DELETE method is used to cancel the existing zone subscription.' + operationId: zoneSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: @@ -1542,6 +1601,16 @@ components: type: string format: uri x-exportParamName: SubscriptionId + Query.ZoneId: + name: zoneId + in: query + description: Identifier of zone + required: false + schema: + type: array + items: + type: string + x-exportParamName: ZoneId Path.ZoneId: name: zoneId in: path @@ -1606,15 +1675,15 @@ components: type: number format: float x-exportParamName: Longitude - Query.Requester: - name: requester - in: query - description: Entity that is requesting the information - required: false - schema: - type: string - x-exportParamName: Requester - Query.ZoneId: + # Query.Requester: + # name: requester + # in: query + # description: Entity that is requesting the information + # required: false + # schema: + # type: string + # x-exportParamName: Requester + Query.ZoneId_: name: zoneId in: query description: Identifier of zone @@ -1660,11 +1729,11 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: dateTimeStamp required: - - accessPointId - - connectionType - - operationStatus - - numberOfUsers - - resourceURL + - accessPointId + - connectionType + - operationStatus + - numberOfUsers + - resourceURL type: object AccessPointList: description: A type containing list of access points. @@ -1687,117 +1756,311 @@ components: x-etsi-mec-cardinality: 1 x-etsi-mec-origin-type: string required: - - zoneId - - resourceURL + - zoneId + - resourceURL type: object - CallbackReference: + + UserLocationPeriodicSubscription: properties: - callbackData: - description: Data the application can register with the server when subscribing to notifications, and that are passed back unchanged in each of the related notifications. These data can be used by the application in the processing of the notification, e.g. for correlation purposes. + _links: + $ref: '#/components/schemas/_links' + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI) to monitor." + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + callbackReference: + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - notificationFormat: - $ref: '#/components/schemas/NotificationFormat' - notifyURL: - description: Notify Callback URL + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the UE Location Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + periodicEventInfo: + description': Information for periodic event reporting. See note 3. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': PeriodicEventInfo + $ref: '#/components/schemas/PeriodicEventInfo' + requestTestNotification: + description: Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4], clause 6.12a. + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserLocationPeriodicSubscription". type: string x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: String + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' required: - - notifyURL + - subscriptionType + - address + - periodicEventInfo type: object - CircleNotificationSubscription: - description: A type containing data for notifications, when the area is defined as a circle. + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it.\nNOTE 3:\tAs specified in [17], clause 6.1.6.2.24." + x-etsi-ref: 6.3.5 + + UserLocationPeriodicNotification: properties: + _links: + $ref: '#/components/schemas/_links' + accessPointId: + description: "The identity of the access point that the user is currently within. \nSee note 2." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String address: - description: Address of terminals to monitor (e.g. "sip" URI, "tel" URI, "acr" URI) - items: - type: string - type: array - x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: anyURI - callbackReference: - $ref: '#/components/schemas/CallbackReference' - checkImmediate: - description: Check location immediately after establishing notification. - type: boolean - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: boolean - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - count: - description: Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0. - type: integer + x-etsi-mec-origin-type: Uri + civicInfo: + description': Contextual information of a user location (e.g. aisle, floor, room number, etc.). See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': CivicAddress + $ref: '#/components/schemas/CivicAddress' + isFinalNotification: + description: Shall be set to true if it is a final notification. + type: boolean x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - duration: - description: "Period of time (in seconds) notifications are provided for. If set to \u201C0\u201D (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications." - type: integer + x-etsi-mec-origin-type: Boolean + locationInfo: + description': The geographical coordinates where the user is. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': LocationInfo + $ref: '#/components/schemas/LocationInfo' + notificationType: + description: Shall be set to "UserLocationPeriodicNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + relativeLocationInfo: + description': The relative location in a reference system. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': RelativeLocationInfo + $ref: '#/components/schemas/RelativeLocationInfo' + result: + description': The result of Localization. See note 3. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': NotificationResult + $ref: '#/components/schemas/NotificationResult' + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + zoneId: + description: "The identity of the zone that the user is currently within. \nSee note 2." + type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - enteringLeavingCriteria: - $ref: '#/components/schemas/EnteringLeavingCriteria' - frequency: - description: Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications). - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - latitude: - description: Latitude of center point. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - link: - description: Link to other resources that are in relationship with the resource. + x-etsi-mec-origin-type: String + required: + - notificationType + - result + - _links + type: object + x-etsi-notes: "NOTE 1:\tAs specified in [17], clause 6.1.6.2.14.\nNOTE 2:\tAs specified in [5], clause 5.2.2.7.\nNOTE 3:\tIf the result is SUCCESS, at least one of locationInfo, civicInfo and relativeLocationInfo shall be present." + x-etsi-ref: 6.4.5 + + + UserLocationEventNotification: + properties: + accessPointId: + description: "The identity of the access point.\nFor the events of \"ENTERING_AREA_EVENT\", it indicates the access point that the user is currently within. \nFor the event of \"LEAVING_AREA_EVENT\", it indicates the access point that the user used to be within.\nSee note 2." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + civicInfo: + description': Contextual information of a user location (e.g. aisle, floor, room number, etc.). See note 1. See note 3. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': CivicAddress + $ref: '#/components/schemas/CivicAddress' + locationInfo: + description': The geographical coordinates where the user is. See note 3. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': LocationInfo + $ref: '#/components/schemas/LocationInfo' + notificationType: + description: Shall be set to "UserLocationEventNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + relativeLocationInfo: + description': The relative location in a reference system. See note 3. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': RelativeLocationInfo + $ref: '#/components/schemas/RelativeLocationInfo' + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + userLocationEvent: + description': The specific event triggering this notification, e.g. "ENTERING_AREA_EVENT", "LEAVING_AREA_EVENT".. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': LocationEventType + $ref: '#/components/schemas/LocationEventType' + zoneId: + description: "The identity of the zone. \nFor the events of \"ENTERING_AREA_EVENT\", it is the zone that the user is currently within. \nFor the event of \"LEAVING_AREA_EVENT\", it is the zone that the user used to be within.\nSee note 2." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + required: + - notificationType + - userLocationEvent + - _links + type: object + x-etsi-notes: "NOTE 1:\tAs specified in [17], clause 6.1.6.2.14.\nNOTE 2:\tAs specified in [5], clause 5.2.2.7.\nNOTE 3:\tAt least one of these attributes shall be present only when reportingLocationReq is set to TRUE in the UserLocationEventSubscription." + x-etsi-ref: 6.4.4 + + ZoneLocationEventSubscription: + properties: + _links: + $ref: '#/components/schemas/_links' + addressList: + description: List of the users to be monitored. If not present, all the users need to be monitored. items: - $ref: '#/components/schemas/Link' + type: string + minItems: 0 type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - longitude: - description: Longitude of center point. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - radius: - description: Radius circle around center point in meters. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - requester: - description: Identifies the entity that is requesting the information (e.g. "sip" URI, "tel" URI, "acr" URI) + x-etsi-mec-origin-type: Array(Uri) + callbackReference: + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - resourceURL: - description: Self referring URL + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - trackingAccuracy: - description: Number of meters of acceptable error in tracking distance. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the Zone Location Event Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + locationEventCriteria: + description: 'List of user event values to generate notifications for. ' + items: + $ref: '#/components/schemas/LocationEventType' + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Array(LocationEventType) + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "ZoneLocationEventSubscription". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' + zoneId: + description: Identifier of zone (e.g. zone001) to monitor. + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - subscriptionType + - zoneId + type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it." + x-etsi-ref: 6.3.6 + + UserLocationEventSubscription: + properties: + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI) to monitor." + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + callbackReference: + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the UE Location Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + locationEventCriteria: + description: 'List of user event values to generate notifications for (these apply to address specified). ' + items: + $ref: '#/components/schemas/LocationEventType' + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Array(LocationEventType) + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserLocationEventSubscription". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + userEventPara: + description': Requirements for user event reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': UserEventPara + $ref: '#/components/schemas/UserEventPara' + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' required: - - callbackReference + - subscriptionType - address - - latitude - - longitude - - radius - - trackingAccuracy - - enteringLeavingCriteria - - checkImmediate - - frequency type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it." + x-etsi-ref: 6.3.4 + ConnectionType: description: The connection type for the access point enum: @@ -1819,109 +2082,325 @@ components: - AllBeyondDistance - AnyBeyondDistance type: string - DistanceNotificationSubscription: - description: A type containing data for distance subscription, with reference to other devices. + _links: + description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. properties: + self: + $ref: '#/components/schemas/LinkType' + required: + - self + type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + LinkType: + properties: + href: + description: URI referring to a resource. + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + required: + - href + type: object + x-etsi-ref: 6.7.2 + UserDistanceNotification: + properties: + _links: + $ref: '#/components/schemas/_links' + distanceEvent: + description: Indicates the distance event triggering the notification. See note. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': DistanceCriteria + $ref: '#/components/schemas/DistanceCriteria' + monitoredUsers: + description: Indicates the location information related to monitored users. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': UserList + $ref: '#/components/schemas/UserList' + notificationType: + description: Shall be set to "UserDistanceNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + timeStamp: + description: Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + required: + - notificationType + - monitoredUsers + - distanceEvent + - _links + type: object + x-etsi-notes: "NOTE:\tAs specified in [6], clause 5.2.3.2." + x-etsi-ref: 6.4.9 + + UserDistanceSubscription: + properties: + _links: + $ref: '#/components/schemas/_links' callbackReference: - $ref: '#/components/schemas/CallbackReference' + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri checkImmediate: description: Check location immediately after establishing notification. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': Bool type: boolean - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: boolean clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - count: - description: Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int + x-etsi-mec-origin-type: String criteria: + description': "Indicates whether the notification should occur when the geographical relationship between monitored and referenced users\u2019 changes. See note 3." + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': DistanceCriteria $ref: '#/components/schemas/DistanceCriteria' distance: - description: Distance between devices that shall be monitored. + description: Distance between users that shall be monitored. The unit is meter. format: float type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - duration: - description: "Period of time (in seconds) notifications are provided for. If set to \u201C0\u201D (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications." - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - frequency: - description: Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications). - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - link: - description: Link to other resources that are in relationship with the resource. - items: - $ref: '#/components/schemas/Link' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + expiryDeadline: + description': The expiration time of the subscription determined by the UE Distance Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' monitoredAddress: - description: Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI) + description: "Contains addresses of users to monitor (e.g., \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI). Reference to a group could be provided here if supported by implementation.\nIf the ReferenceAddress is specified, then the distance between each monitored user and reference user(s) will be monitored.\nIf the ReferenceAddress is not present, then the distance between each pair of the monitored users will be monitored. Note that in that case there shall be at least two addresses specified here." items: type: string + minItems: 1 type: array x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: Array(Uri) referenceAddress: - description: Indicates address of each device that will be used as reference devices from which the distances towards monitored devices indicated in the Addresses will be monitored (e.g., 'sip' URI, 'tel' URI, 'acr' URI) + description: "If specified, indicates address of each user that will be used as reference users from which the distances towards monitored users indicated in the Addresses will be monitored (e.g., \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI). Reference to a group could be provided here if supported by implementation." items: type: string + minItems: 0 type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: anyURI - requester: - description: Identifies the entity that is requesting the information (e.g. "sip" URI, "tel" URI, "acr" URI) - type: string + x-etsi-mec-origin-type: Array(Uri) + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - resourceURL: - description: Self referring URL + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserDistanceSubscription". type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String trackingAccuracy: description: Number of meters of acceptable error in tracking distance. format: float type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' required: - - callbackReference + - subscriptionType - monitoredAddress - distance - trackingAccuracy - criteria - checkImmediate - - frequency type: object - EnteringLeavingCriteria: - enum: - - Entering - - Leaving - type: string - Link: - description: Link to other resources + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it.\nNOTE 3:\tAs specified in [6], clause 5.2.3.2." + x-etsi-ref: 6.3.9 + CivicAddress: + description: Indicates a Civic address + type: object + required: + - country properties: - href: - description: URI - format: anyURI + country: + description: The two-letter ISO 3166 country code in capital ASCII letters, e.g., DE or US type: string - rel: - description: Describes the relationship between the URI and the resource. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + A1: + description: National subdivisions (state, canton, region, province, prefecture) type: string - required: - - rel - - href - type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A2: + description: County, parish, gun (JP), district (IN) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A3: + description: City, township, shi (JP) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A4: + description: City division, borough, city district, ward, chou (JP) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A5: + description: Neighbourhood, block + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A6: + description: Group of streets below the neighbourhood level + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PRD: + description: Leading street direction + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + POD: + description: Trailing street suffix + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + STS: + description: Street suffix or type + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + HNO: + description: House number + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + HNS: + description: House number suffix + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + LMK: + description: Landmark or vanity address + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + LOC: + description: Additional location information + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + NAM: + description: Name (residence and office occupant) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PC: + description: Postal/zip code + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + BLD: + description: Building (structure) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + UNIT: + description: Unit (apartment, suite) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + FLR: + description: Floor + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + ROOM: + description: Room + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PLC: + description: Place-type + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PCN: + description: Postal community name + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + POBOX: + description: Post office box (P.O. box) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + ADDCODE: + description: Additional code + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + SEAT: + description: Seat (desk, cubicle, workstation) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RD: + description: Primary road or street + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RDSEC: + description: Road clause + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RDBR: + description: Road branch + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RDSUBBR: + description: Road sub-branch + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PRM: + description: Road pre-modifier + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + POM: + description: Road post-modifier + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + usageRules: + description: When present, this IE shall carry the value of "usagerules" Element of the PIDL-LO XML document, with UTF-8 encoding. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + method: + description: When present, this IE shall contain the method token, carried by the "method" Element of the PIDLLO XML document. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + providedBy: + description: When present, this IE shall carry the value of "provided-by" Element of the PIDL-LO XML document, with UTF-8 encoding. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String LocationInfo: properties: accuracy: @@ -2034,145 +2513,239 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: UnsignedInt required: - - velocityType - - bearing - - horizontalSpeed + - velocityType + - bearing + - horizontalSpeed type: object x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) + required: + - latitude + - longitude + - shape + type: object + x-etsi-ref: 6.5.3 + + Point: + properties: + latitude: + description: "Location latitude, expressed in the range -90\xB0 to +90\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + longitude: + description: "Location longitude, expressed in the range -180\xB0 to +180\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float required: - latitude - longitude - - shape type: object - x-etsi-ref: 6.5.3 - NotificationFormat: - enum: - - XML - - JSON - type: string - NotificationSubscriptionList: + x-etsi-ref: 6.5.8 + + AreaInfo: properties: - circleNotificationSubscription: - description: Collection of CircleNotificationSubscription elements, see note 2. + points: + description: Shall include one point if the shape is CIRCLE. Shall include 3-15 points if the shape is POLYGON. items: - $ref: '#/components/schemas/CircleNotificationSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: CircleNotificationSubscription - distanceNotificationSubscription: - description: Collection of DistanceNotificationSubscription elements, see note 2. - items: - $ref: '#/components/schemas/DistanceNotificationSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: DistanceNotificationSubscription - periodicNotificationSubscription: - description: Collection of PeriodicNotificationSubscription elements, see note 2. - items: - $ref: '#/components/schemas/PeriodicNotificationSubscription' - minItems: 0 + $ref: '#/components/schemas/Point' + minItems: 1 type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: PeriodicNotificationSubscription - resourceURL: - description: Self-referring URL, see note 1. + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Array(Point) + radius: + description: Shall be present if the shape is CIRCLE. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + shape: + description: 'The shape of the area monitored: + 1 = CIRCLE. + 2 = POLYGON' + enum: + - 1 + - 2 + type: integer + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Enum(inlined) + required: + - shape + - points + type: object + x-etsi-ref: 6.5.7 + UserAreaNotification: + properties: + _links: + $ref: '#/components/schemas/_links' + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." format: uri type: string x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: AnyURI - userTrackingSubscription: - description: Collection of UserTrackingSubscription elements, see note 1. - items: - $ref: '#/components/schemas/UserTrackingSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: UserTrackingSubscription - zonalTrafficSubscription: - description: Collection of ZonalTrafficSubscription elements, see note 1. - items: - $ref: '#/components/schemas/ZonalTrafficSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: ZonalTrafficSubscription - zoneStatusSubscription: - description: Collection of ZoneStatusSubscription elements, see note 1. - items: - $ref: '#/components/schemas/ZoneStatusSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: ZoneStatusSubscription + x-etsi-mec-origin-type: Uri + civicInfo: + description': Contextual information of a user location (e.g. aisle, floor, room number, etc.). See note 1. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': CivicAddress + $ref: '#/components/schemas/CivicAddress' + locationInfo: + description': The geographical coordinates where the user is. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': LocationInfo + $ref: '#/components/schemas/LocationInfo' + notificationType: + description: Shall be set to "UserAreaNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + relativeLocationInfo: + description': The relative location in a reference system. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': RelativeLocationInfo + $ref: '#/components/schemas/RelativeLocationInfo' + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + userLocationEvent: + description': The specific event triggering this notification, e.g. "ENTERING_AREA_EVENT", "LEAVING_AREA_EVENT". + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': LocationEventType + $ref: '#/components/schemas/LocationEventType' required: - - resourceURL + - notificationType + - address + - userLocationEvent + - _links type: object - x-etsi-notes: "NOTE 1:\tAs specified in [5], clause 5.2.2.8.\nNOTE 2: \tAs specified in [6], clause 5.2.2.7." - x-etsi-ref: 6.3.3 - OperationStatus: - enum: - - Serviceable - - Unserviceable - - Unknown - type: string - PeriodicNotificationSubscription: - description: A type containing data for periodic subscription. + x-etsi-notes: "NOTE 1:\tAs specified in [17], clause 6.1.6.2.14.\nNOTE 2:\tAt least one of these attributes shall be present only when reportingLocationReq is set to TRUE in the UserAreaSubscription." + x-etsi-ref: 6.4.8 + + UserAreaSubscription: properties: - address: - description: Address of terminals to monitor (e.g. "sip" URI, "tel" URI, "acr" URI) + _links: + $ref: '#/components/schemas/_links' + addressList: + description: 'List of the users to be monitored. ' items: type: string + minItems: 1 type: array x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: Array(Uri) + areaDefine: + description': The parameters describing the area to subscribe. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': AreaInfo + $ref: '#/components/schemas/AreaInfo' callbackReference: - $ref: '#/components/schemas/CallbackReference' - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - duration: - description: "Period of time (in seconds) notifications are provided for. If set to \u201C0\u201D (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications." - type: integer + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. + type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - frequency: - description: Maximum frequency (in seconds) of notifications (can also be considered minimum time between notifications) per subscription. - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - link: - description: Link to other resources that are in relationship with the resource. + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the UE Area Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + locationEventCriteria: + description: 'List of user event values to generate notifications for (these apply to address specified). ' items: - $ref: '#/components/schemas/Link' + $ref: '#/components/schemas/LocationEventType' + minItems: 0 type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - requestedAccuracy: - description: Accuracy of the provided distance in meters. - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - requester: - description: Identifies the entity that is requesting the information (e.g. "sip" URI, "tel" URI, "acr" URI) - type: string + x-etsi-mec-origin-type: Array(LocationEventType) + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + reportingLocationReq: + description: This IE shall be set to true if a location estimate is required for each event report. + type: boolean x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: boolean + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserAreaSubscription". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + trackingAccuracy: + description: Number of meters of acceptable error. + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' + required: + - subscriptionType + - areaDefine + - addressList + - trackingAccuracy + type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it." + x-etsi-ref: 6.3.8 + + NotificationSubscriptionList: + description: This type contains a list of subscriptions. + properties: resourceURL: - description: Self referring URL + $ref: '#/components/schemas/LinkType' + subscription: + items: + $ref: '#/components/schemas/Subscription' + type: array + required: + - resourceURL + type: object + x-etsi-ref: 6.3.3 + Subscription: + description: '' + minItems: 0 + properties: + href: + description: The URI referring to the subscription. + format: uri type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + subscriptionType: + description: "Type of the subscription. The string shall be set according to the \"subscriptionType\" attribute of the associated subscription data type defined in clauses\_6.3.4, 6.3.5, 6.3.6, 6.3.7 6.3.8 and 6.3.9:\n\"UserLocationEventSubscription\"\n\"UserLocationPeriodicSubscription\"\n\"ZoneLocationEventSubscription\"\n\"ZoneStatusSubscription\"\n\"UserAreaSubscription\"\n\"UserDistanceSubscription\"" + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String required: - - callbackReference - - address - - requestedAccuracy - - frequency + - href + - subscriptionType type: object + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + OperationStatus: + enum: + - Serviceable + - Unserviceable + - Unknown + type: string ProblemDetails: properties: detail: @@ -2226,51 +2799,18 @@ components: type: string x-etsi-mec-cardinality: 1 x-etsi-mec-origin-type: string - variables: - description: Variables to substitute into text string - items: - type: string - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: string - required: - - messageId - - text - type: object - SubscriptionNotification: - description: A type containing the notification subscription. - properties: - callbackData: - description: CallbackData if passed by the application in the receiptRequest element during the associated subscription operation - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - distanceCriteria: - $ref: '#/components/schemas/DistanceCriteria' - enteringLeavingCriteria: - $ref: '#/components/schemas/EnteringLeavingCriteria' - isFinalNotification: - description: Set to true if it is a final notification about location change. - type: boolean - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: boolean - link: - description: Link to other resources that are in relationship with the resource. + variables: + description: Variables to substitute into text string items: - $ref: '#/components/schemas/Link' + type: string type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - terminalLocation: - description: Collection of the terminal locations. - items: - $ref: '#/components/schemas/TerminalLocation' - type: array - x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: TerminalLocation + x-etsi-mec-origin-type: string required: - - terminalLocation + - messageId + - text type: object + TerminalDistance: description: A type containing information about the distance from a terminal to a location or between two terminals, in addition the accuracy and a timestamp of the information are provided. properties: @@ -2307,6 +2847,190 @@ components: - address - locationRetrievalStatus type: object + + UserEventPara: + properties: + accessPointList: + description: One or more access points forming a monitoring area that could be any shape. See note 1. + items: + type: string + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Array(String) + occurrenceInfo: + description': One time only report indication. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': OccurrenceInfo + $ref: '#/components/schemas/OccurrenceInfo' + reportingLocationReq: + description: This IE shall be set to true if a location estimate is required for each event report. + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: boolean + zoneId: + description: "Identifier of zone (e.g. zone001) to monitor. See note\_1." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + type: object + x-etsi-notes: "NOTE 1:\tOnly one of accessPointList and zoneId may be present.\nNOTE 2:\tAs specified in [17], clause 6.1.6.3.16." + x-etsi-ref: 6.5.5 + OccurrenceInfo: + description: The enumeration OccurrenceInfo indicates whether event reporting is one time. + enum: + - ONE_TIME_EVENT + - MULTIPLE_TIME_EVENT + type: string + + WebsockNotifConfig: + properties: + requestWebsocketUri: + description: Set to true by the service consumer to indicate that Websocket delivery is requested. + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + websocketUri: + description: Set by location server to indicate to the service consumer the Websocket URI to be used for delivering notifications. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + type: object + x-etsi-ref: 6.5.4 + + PeriodicEventInfo: + description: "NOTE: reportingAmount x reportingInterval shall not exceed 8639999 (99 days, 23 hours, 59 minutes and 59 seconds) + for compatibility with OMA MLP and RLP." + type: object + required: + - reportingAmount + - reportingInterval + properties: + reportingAmount: + description: Number of event reports + type: number + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: ReportingAmount + reportingInterval: + description: Interval of event reports + type: number + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: reportingInterval + + RelativeLocationInfo: + properties: + X: + description: 'Indicates the value (in the unit of meters) on x-axis of the relative location in the Cartesian system. + Positive value represents easting from origin.' + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + Y: + description: 'Indicates the value (in the unit of meters) on y-axis of the relative location in the Cartesian system. + Positive value represents northing from origin.' + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + Z: + description: 'Indicates the value (in the unit of meters) on z-axis of the relative location in the Cartesian system for a 3DPoint. + Positive value represents height above origin.' + format: float + type: number + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Float + mapInfo: + $ref: '#/components/schemas/MapInfo' + required: + - mapInfo + - 'X' + - 'Y' + type: object + x-etsi-ref: 6.2.3 + + + MapInfo: + properties: + ancillaryMapInfo: + description: Ancillary map information may be used to convert coordinates between different coordinate systems. + type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Not_specified + mapId: + description: 'Indicates the ID of the map. ' + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + origin: + $ref: '#/components/schemas/Origin' + required: + - mapId + type: object + x-etsi-ref: 6.2.4 + + Origin: + description: Indicates the location of the map origin in the local Cartesian coordinate system. + properties: + altitude: + description: Location altitude relative to the WGS84 ellipsoid surface. + format: float + type: number + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Float + latitude: + description: "Location latitude, expressed in the range -90\xB0 to +90\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + longitude: + description: "Location longitude, expressed in the range -180\xB0 to +180\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + required: + - latitude + - longitude + type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure(inlined) + NotificationResult: + description: This enumeration represents the result of a localization associated with a notification + enum: + - SUCCESS + - ABNORMAL + type: string + + ReportingCtrl: + properties: + maximumCount: + description: Maximum number of notifications. For no maximum, either do not include this element or specify a value of zero. Default value is 0. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + maximumFrequency: + description: Maximum frequency (in seconds) of notifications per subscription. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + minimumInterval: + description: Minimum interval between reports in case frequently reporting. Unit is second. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + type: object + x-etsi-ref: 6.5.6 + + LocationEventType: + description: This type represents specified event types for UE location report. + enum: + - ENTERING_AREA_EVENT + - LEAVING_AREA_EVENT + type: string + TimeStamp: properties: nanoSeconds: @@ -2328,12 +3052,6 @@ components: - nanoSeconds type: object x-etsi-ref: 6.5.2 - UserEventType: - enum: - - Entering - - Leaving - - Transferring - type: string UserInfo: properties: accessPointId: @@ -2359,6 +3077,8 @@ components: x-etsi-mec-origin-type: String locationInfo: $ref: '#/components/schemas/LocationInfo' + civicInfo: + $ref: '#/components/schemas/CivicAddress' resourceURL: description: Self-referring URL, see note 1. type: string @@ -2398,131 +3118,6 @@ components: required: - resourceURL type: object - UserTrackingSubscription: - description: A type containing user tracking subscription. - properties: - address: - description: Address of user (e.g. "sip" URI, "tel" URI, "acr" URI) to monitor - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: anyURI - callbackReference: - $ref: '#/components/schemas/CallbackReference' - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - resourceURL: - description: Self referring URL - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - userEventCriteria: - description: List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event. - items: - $ref: '#/components/schemas/UserEventType' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: UserEventType - required: - - callbackReference - - address - type: object - ZonalPresenceNotification: - description: A type containing zonal presence notification - properties: - address: - description: Address of user (e.g. "sip" URI, "tel" URI, "acr" URI) to monitor - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: anyURI - callbackData: - description: CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See [REST_NetAPI_Common]. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - currentAccessPointId: - description: Identifier of access point. - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string - interestRealm: - description: Interest realm of access point (e.g. geographical area, a type of industry etc.). - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - link: - description: Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification - items: - $ref: '#/components/schemas/Link' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - previousAccessPointId: - description: Identifier of access point. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - timestamp: - $ref: '#/components/schemas/TimeStamp' - userEventType: - $ref: '#/components/schemas/UserEventType' - zoneId: - description: Identifier of zone - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string - required: - - zoneId - - address - - userEventType - - currentAccessPointId - - timestamp - type: object - ZonalTrafficSubscription: - description: A type containing zonal traffic subscription - properties: - callbackReference: - $ref: '#/components/schemas/CallbackReference' - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - duration: - description: Period (in seconds) of time notifications are provided for. If set to "0" (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications. This element MAY be given by the client during resource creation in order to signal the desired lifetime of the subscription. The server MUST return in this element the period of time for which the subscription will still be valid. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt - interestRealm: - description: Interest realm of access point (e.g. geographical area, a type of industry etc.). - items: - type: string - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: string - resourceURL: - description: Self referring URL - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - userEventCriteria: - description: List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event. - items: - $ref: '#/components/schemas/UserEventType' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: UserEventType - zoneId: - description: Identifier of zone - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string - required: - - callbackReference - - zoneId - type: object ZoneInfo: description: A type containing zone information. properties: @@ -2574,87 +3169,172 @@ components: required: - resourceURL type: object + ZoneLocationEventNotification: + properties: + _links: + $ref: '#/components/schemas/_links' + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + notificationType: + description: Shall be set to "ZoneLocationEventNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + userLocationEvent: + description': The specific event triggering this notification, e.g. "ENTERING_AREA_EVENT","LEAVING_AREA_EVENT". + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': LocationEventType + $ref: '#/components/schemas/LocationEventType' + zoneId: + description: 'The identity of the zone. ' + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - notificationType + - address + - userLocationEvent + - zoneId + - _links + type: object + x-etsi-ref: 6.4.6 + ZoneStatusNotification: - description: A type containing zone status notification. properties: + _links: + $ref: '#/components/schemas/_links' accessPointId: - description: Identifier of an access point. + description: Identifier of an access point (e.g. ap01). Shall be included when userNumEvent related with access point or operationStatus is included. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - callbackData: - description: CallBackData if passed by the application during the associated ZoneStatusSubscription operation. See [REST_NetAPI_Common]. + x-etsi-mec-origin-type: String + notificationType: + description: Shall be set to "ZoneStatusNotification". type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - link: - description: Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification - items: - $ref: '#/components/schemas/Link' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - numberOfUsersInAP: - description: This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt - numberOfUsersInZone: - description: This element shall be present when ZoneStatusSubscription includes numberOfUsersZoneThreshold element and the number of users in a zone exceeds the threshold defined in this subscription. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String operationStatus: + description': Shall be present when ZoneStatusSubscription includes operationStatus and the operation status value of an access point meets Serviceable or Unserviceable or Unknown defined in the subscription. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': OperationStatus $ref: '#/components/schemas/OperationStatus' - timestamp: + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' + userNumEvent: + description: 'Shall be present when ZoneStatusSubscription includes upperNumberOfUsersZoneThreshold, lowerNumberOfUsersZoneThreshold, upperNumberOfUsersAPThreshold or lowerNumberOfUsersAPThreshold, and the number of users in a zone or an access point crosses the threshold defined in the subscription: + 1 = OVER_ZONE_UPPER_THD. + 2 = UNDER_ZONE_LOWER_THD. + 3 = OVER_AP_UPPER_THD. + 4 = UNDER_AP_LOWER_THD.' + enum: + - 1 + - 2 + - 3 + - 4 + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Enum(inlined) zoneId: - description: Identifier of zone + description: 'The identity of the zone. ' type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String required: + - notificationType - zoneId - - timestamp + - _links type: object + x-etsi-notes: "NOTE:\tAs specified in [5], clause 5.2.3.2." + x-etsi-ref: 6.4.7 + ZoneStatusSubscription: - description: A type containing zone status subscription. properties: + _links: + $ref: '#/components/schemas/_links' callbackReference: - $ref: '#/components/schemas/CallbackReference' + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - numberOfUsersAPThreshold: - description: Threshold number of users in an access point which if crossed shall cause a notification + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the Zone Status Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + lowerNumberOfUsersAPThreshold: + description: Threshold number of users in an access point which if crossed downward shall cause a notification type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt - numberOfUsersZoneThreshold: - description: Threshold number of users in a zone which if crossed shall cause a notification + x-etsi-mec-origin-type: UnsignedInt + lowerNumberOfUsersZoneThreshold: + description: Threshold number of users in a zone which if crossed downward shall cause a notification type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt + x-etsi-mec-origin-type: UnsignedInt operationStatus: - description: List of operation status values to generate notifications for (these apply to all access points within a zone). + description: List of operation status values to generate notifications for (these apply to all access points within a zone). See note 3. items: $ref: '#/components/schemas/OperationStatus' + minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: OperationStatus - resourceURL: - description: Self referring URL + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "ZoneStatusSubscription". type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + upperNumberOfUsersAPThreshold: + description: Threshold number of users in an access point which if crossed upward shall cause a notification. + type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: UnsignedInt + upperNumberOfUsersZoneThreshold: + description: Threshold number of users in a zone which if crossed upward shall cause a notification. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' zoneId: - description: Identifier of zone + description: Identifier of zone (e.g. zone001) to monitor. type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String required: - - callbackReference + - subscriptionType - zoneId type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it.\nNOTE 3:\tAs specified in [5], clause 5.2.3.2." + x-etsi-ref: 6.3.7 diff --git a/config/api/mts-api.yaml b/config/api/mts-api.yaml index 7b83c63831a5a33d4020d9cbd73ec43c2cedfc94..34fc41839dc07e42c10ed41fa41481d7dcd43657 100644 --- a/config/api/mts-api.yaml +++ b/config/api/mts-api.yaml @@ -1,21 +1,25 @@ openapi: 3.0.0 info: + title: AdvantEDGE Multi-access Traffic Steering API + description: "Multi-access Traffic Steering Sercice is AdvantEDGE's implementation\ + \ of [ETSI MEC ISG MEC015 Traffic Management APIs](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/03.01.01_60/gs_MEC015v030101p.pdf)\ + \

[Copyright (c) ETSI 2017](https://forge.etsi.org/etsi-forge-copyright-notice.txt)\ + \

**Micro-service**
[meep-tm](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-tm/server/mts)\ + \

**Type & Usage**
Edge Service used by edge applications that want to get\ + \ information about MTS Info and Session(s) in the network

**Note**
AdvantEDGE\ + \ supports all Multi-access Traffic Steering API endpoints." contact: - url: 'https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api' - title: ETSI GS MEC 015 - Multi-access Traffic Steering API - version: 2.2.1 - description: >- - 'The ETSI MEC ISG MEC015 Multi-access Traffic Steering API described using OpenAPI -

**Note**
MEC Sandbox supports all MTS API endpoints; complete details on the MTS API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf).' + name: InterDigital AdvantEDGE Support + email: AdvantEDGE@InterDigital.com license: - name: BSD-3-Clause - url: 'https://forge.etsi.org/legal-matters' + name: Apache 2.0 + url: https://github.com/InterDigitalInc/AdvantEDGE/blob/master/LICENSE + version: 3.1.1 externalDocs: - description: ETSI MEC015 V2.2.1 Traffic Management API - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf + description: ETSI GS MEC015 V3.1.1 Traffic Management APIs + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/03.01.01_60/gs_MEC015v030101p.pdf servers: - - url: 'https://localhost/sandboxname/mts/v1' +- url: https://localhost/sandboxname/mts/v1 tags: - name: mts paths: @@ -31,29 +35,35 @@ paths: parameters: [] responses: "200": - description: Upon success, a response body containing the MTS capability - information is returned. + description: "Upon success, a response body containing the MTS capability\ + \ information is returned." content: application/json: schema: $ref: '#/components/schemas/MtsCapabilityInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too many requests: It is used when a rate limiter has triggered." content: application/problem+json: schema: @@ -105,8 +115,8 @@ paths: type: string responses: "200": - description: Upon success, a response body containing an array of the MTS - sessions is returned. + description: "Upon success, a response body containing an array of the MTS\ + \ sessions is returned." content: application/json: schema: @@ -115,22 +125,28 @@ paths: $ref: '#/components/schemas/MtsSessionInfo' x-content-type: application/json "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too many requests: It is used when a rate limiter has triggered." content: application/problem+json: schema: @@ -153,29 +169,35 @@ paths: required: true responses: "201": - description: Upon success, the HTTP response shall include a 'Location' - HTTP header that contains the resource URI of the created resource. + description: "Upon success, the HTTP response shall include a 'Location'\ + \ HTTP header that contains the resource URI of the created resource." content: application/json: schema: $ref: '#/components/schemas/MtsSessionInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "405": + description: "Not Allowed : used when the client reached maximum sessions limit." content: application/problem+json: schema: @@ -207,22 +229,28 @@ paths: schema: $ref: '#/components/schemas/MtsSessionInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too many requests: It is used when a rate limiter has triggered." content: application/problem+json: schema: @@ -231,8 +259,8 @@ paths: tags: - mts summary: Update the information about specific MTS session - description: 'Updates the information about an individual MTS session. As specified - in ETSI GS MEC 009 [6], the PUT HTTP method has ''replace'' semantics. ' + description: "Updates the information about an individual MTS session. As specified\ + \ in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics. " operationId: mtsSessionPUT parameters: - name: sessionId @@ -260,30 +288,30 @@ paths: schema: $ref: '#/components/schemas/MtsSessionInfo' "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "412": - description: 'Precondition failed : used when a condition has failed during - conditional requests, e.g. when using ETags to avoid write conflicts when - using PUT' + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts\ + \ when using PUT" content: application/problem+json: schema: @@ -306,18 +334,18 @@ paths: type: string responses: "204": - description: Upon success, a response 204 No Content without any response - body is returned. + description: "Upon success, a response 204 No Content without any response\ + \ body is returned." "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot - be mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." content: application/problem+json: schema: @@ -345,15 +373,15 @@ components: mtsMode: minItems: 1 type: array - description: Numeric value corresponding to a specific MTS operation supported - by the TMS 0 = low cost, i.e. using the unmetered access network connection - whenever it is available 1 = low latency, i.e. using the access network - connection with lower latency 2 = high throughput, i.e. using the access - network connection with higher throughput, or/and multiple access network - connection simultaneously if supported 3 = redundancy, i.e. sending duplicated - (redundancy) packets over multiple access network connections for highreliability - and low-latency applications 4 = QoS, i.e. performing MTS based on the - specific QoS requirements from the app + description: "Numeric value corresponding to a specific MTS operation supported\ + \ by the TMS 0 = low cost, i.e. using the unmetered access network connection\ + \ whenever it is available 1 = low latency, i.e. using the access network\ + \ connection with lower latency 2 = high throughput, i.e. using the access\ + \ network connection with higher throughput, or/and multiple access network\ + \ connection simultaneously if supported 3 = redundancy, i.e. sending\ + \ duplicated (redundancy) packets over multiple access network connections\ + \ for highreliability and low-latency applications 4 = QoS, i.e. performing\ + \ MTS based on the specific QoS requirements from the app" items: type: integer format: uint32 @@ -407,36 +435,46 @@ components: flowFilter: minItems: 1 type: array - description: Traffic flow filtering criteria, applicable only if when requestType - is set as FLOW_SPECIFIC_MTS_SESSION. Any filtering criteria shall define - a single session only. In case multiple sessions match flowFilter the - request shall be rejected. If the flowFilter field is included, at least - one of its subfields shall be included. Any flowFilter subfield that is - not included shall be ignored in traffic flow filtering + description: "Traffic flow filtering criteria, applicable only if when requestType\ + \ is set as FLOW_SPECIFIC_MTS_SESSION. Any filtering criteria shall define\ + \ a single session only. In case multiple sessions match flowFilter the\ + \ request shall be rejected. If the flowFilter field is included, at least\ + \ one of its subfields shall be included. Any flowFilter subfield that\ + \ is not included shall be ignored in traffic flow filtering" items: $ref: '#/components/schemas/MtsSessionInfo_flowFilter' x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) mtsMode: type: integer - description: 'Numeric value (0 - 255) corresponding to a specific MTS mode - of the MTS session: 0 = low cost, i.e. using the unmetered access network - connection whenever it is available 1 = low latency, i.e. using the access - network connection with lower latency 2 = high throughput, i.e. using - the access network connection with higher throughput, or multiple access - network connection simultaneously 3 = redundancy, i.e. sending duplicated - (redundancy) packets over multiple access network connections for high-reliability - and low-latency applications 4 = QoS, i.e. performing MTS based on the - QoS requirement (qosD)' + description: "Numeric value (0 to 255) corresponding to a specific MTS mode\ + \ of the MTS session: 0 = low cost, i.e. using the unmetered access network\ + \ connection whenever it is available 1 = low latency, i.e. using the\ + \ access network connection with lower latency 2 = high throughput, i.e.\ + \ using the access network connection with higher throughput, or multiple\ + \ access network connection simultaneously 3 = redundancy, i.e. sending\ + \ duplicated (redundancy) packets over multiple access network connections\ + \ for high-reliability and low-latency applications 4 = QoS, i.e. performing\ + \ MTS based on the QoS requirement (qosD)" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 + trafficSplit: + type: array + description: Indicates the requested ratio between multiple access networks for the network aggregation\ + \ required for higher throughput. Indicates the requested ratio between multiple access networks for \ + \ the network aggregation required for higher throughput. This is based on the existing 3GPP ATSSS feature\ + \ specified in clause 5.32.8 of ETSI TS 123 501 [i.5]. + items: + $ref: '#/components/schemas/TrafficSplit' + trafficSwitch: + $ref: '#/components/schemas/TrafficSwitch' qosD: $ref: '#/components/schemas/MtsSessionInfo_qosD' requestType: type: integer - description: 'Numeric value (0 - 255) corresponding to specific type of - consumer as following: 0 = APPLICATION_SPECIFIC_MTS_SESSION 1 = FLOW_SPECIFIC_MTS_SESSION' + description: "Numeric value (0 to 255) corresponding to specific type of\ + \ consumer as following: 0 = APPLICATION_SPECIFIC_MTS_SESSION 1 = FLOW_SPECIFIC_MTS_SESSION" enum: - 0 - 1 @@ -446,9 +484,9 @@ components: $ref: '#/components/schemas/MtsSessionInfo_timeStamp' trafficDirection: type: string - description: 'The direction of the requested MTS session: 00 = Downlink - (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical - (see note) ' + description: "The direction of the requested MTS session: 00 = Downlink\ + \ (towards the UE) 01 = Uplink (towards the application/session) 10 =\ + \ Symmetrical (see note) " x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String example: @@ -514,7 +552,7 @@ components: x-etsi-mec-origin-type: Uint32 title: type: string - description: A short, human-readable summary of the problem type + description: "A short, human-readable summary of the problem type" x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String type: @@ -524,6 +562,24 @@ components: format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI + OperationActionType: + type: string + description: Operation that is being performed on the MEC application instance. + enum: + - STOPPING + - TERMINATING + LinkType: + required: + - href + type: object + properties: + href: + type: string + description: URI referring to a resource + format: uri + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Uri + x-etsi-ref: 6.5.2 MtsCapabilityInfo_mtsAccessInfo: type: object properties: @@ -535,19 +591,21 @@ components: x-etsi-mec-origin-type: Uint32 accessType: type: integer - description: 'Numeric value (0-255) corresponding to specific type of access - network as following: 0 = Unknown 1 = Any IEEE802.11-based WLAN technology - 2 = Any 3GPP-based Cellular technology 3 = Any Fixed Access 11 = IEEE802.11 - a/b/g WLAN 12 = IEEE 802.11 a/b/g/n WLAN 13 = IEEE 802.11 a/b/g/n/ac WLAN - 14 = IEEE 802.11 a/b/g/n/ac/ax WLAN (Wi-Fi 6) 15 = IEEE 802.11 b/g/n WLAN - 31 = 3GPP GERAN/UTRA (2G/3G) 32 = 3GPP E-UTRA (4G/LTE) 33 = 3GPP NR (5G)' + description: "Numeric value (0 to 255) corresponding to specific type of access\ + \ network as following: 0 = Unknown 1 = Any IEEE802.11-based WLAN technology\ + \ 2 = Any 3GPP-based Cellular technology 3 = Any Fixed Access 11 = IEEE802.11\ + \ a/b/g WLAN 12 = IEEE 802.11 a/b/g/n WLAN 13 = IEEE 802.11 a/b/g/n/ac\ + \ WLAN 14 = IEEE 802.11 a/b/g/n/ac/ax WLAN (Wi-Fi 6) 15 = IEEE 802.11\ + \ b/g/n WLAN 31 = 3GPP GERAN/UTRA (2G/3G) 32 = 3GPP E-UTRA (4G/LTE) 33\ + \ = 3GPP NR (5G)" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 metered: type: integer - description: 'Numeric value (0-255) corresponding to the following: 0: the - connection is not metered (see note) 1: the connection is metered 2: unknown ' + description: "Numeric value (0 to 255) corresponding to the following: 0: the\ + \ connection is not metered (see note) 1: the connection is metered 2:\ + \ unknown " format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 @@ -563,15 +621,15 @@ components: properties: nanoSeconds: type: integer - description: Time in nanoseconds in Unix-time since January 1, 1970, 00:00:00 - UTC + description: "Time in nanoseconds in Unix-time since January 1, 1970, 00:00:00\ + \ UTC" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 seconds: type: integer - description: Time in seconds in Unix-time since January 1, 1970, 00:00:00 - UTC + description: "Time in seconds in Unix-time since January 1, 1970, 00:00:00\ + \ UTC" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 @@ -589,51 +647,54 @@ components: format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 - dstIp: - description: >- - Destination address identity of session. The string for a IPv4 - address shall be formatted in the "dotted decimal" notation as - defined in IETF RFC 1166 [10]. The string for a IPv6 address shall - be formatted according to clause 4 of IETF RFC 5952 [11], with in - CIDR notation [12] used to provide the routing prefix. + dstAddress: type: string + description: "Destination address identity of session. The string for a\ + \ IPv4 address shall be formatted in the \"dotted decimal\" notation as\ + \ defined in IETF RFC 1166 [10]. The string for a IPv6 address shall be\ + \ formatted according to clause 4 of IETF RFC 5952 [11], with in CIDR\ + \ notation IETF RFC 4632 [12] used to provide the routing prefix." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String dstPort: + type: string description: Destination port identity of session - format: uint32 - type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: Uint32 + x-etsi-mec-origin-type: String flowlabel: type: integer - description: Flow Label in the IPv6 header, applicable only if the flow - is IPv6 + description: "Flow Label in the IPv6 header, applicable only if the flow\ + \ is IPv6" format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 protocol: - type: integer + type: string description: Protocol number + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + maxSessions: + type: integer format: uint32 + description: It indicates the maximum number of sessions MTS service will\ + \ track for the given (sourceIp, dstIp etc.) provided by a service consumer.\ + \ This attribute shall not be present in the request, but may be present in the response. x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 - sourceIp: - description: >- - Source address identity of session. The string for a IPv4 address - shall be formatted in the "dotted decimal" notation as defined in - IETF RFC 1166 [10]. The string for a IPv6 address shall be formatted - according to clause 4 of IETF RFC 5952 [11], with in CIDR notation - [12] used to provide the routing prefix. + sourceAddress: type: string + description: "Source address identity of session. The string for a IPv4\ + \ address shall be formatted in the \"dotted decimal\" notation as defined\ + \ in IETF RFC 1166 [10]. The string for a IPv6 address shall be formatted\ + \ according to clause 4 of IETF RFC 5952 [11], with in CIDR notation IETF RFC 4632 [12]\ + \ used to provide the routing prefix." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourcePort: + type: string description: Source port identity of session - format: uint32 - type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: Uint32 + x-etsi-mec-origin-type: String example: flowlabel: 1 protocol: 5 @@ -642,44 +703,75 @@ components: dstPort: 6 sourceIp: sourceIp dstIp: dstIp + TrafficSplit: + type: object + required: + - accessId + - splittingRatio + properties: + accessId: + type: integer + format: int32 + description: Unique identifier for the access network connection. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: Uint32 + splittingRatio: + type: string + description: Splitting ratio for the access network as per the accessId. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + TrafficSwitch: + type: object + description: Priority based access network connection switching for seamless handover as per the\ + \ application preference. This is based on the existing 3GPP ATSSS feature specified in clause\ + \ 5.32.8 of ETSI TS 123 501 [i.5]. + required: + - accessId + properties: + accessId: + type: integer + format: int32 + description: Unique identifier for the access network connection. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: Uint32 MtsSessionInfo_qosD: type: object properties: maxJitter: type: integer - description: tolerable jitter in [10 nanoseconds] + description: "Tolerable jitter in [10 nanoseconds]" format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 maxLatency: type: integer - description: tolerable (one-way) delay in [10 nanoseconds] + description: "Tolerable (one-way) delay in [10 nanoseconds]" format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 maxLoss: type: integer - description: tolerable packet loss rate in [1/10^x] + description: "Tolerable packet loss rate in [1/10^x]" format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 minTpt: type: integer - description: minimal throughput in [kbps] + description: "Minimal throughput in [kbps]" format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 priority: type: integer - description: 'numeric value (0 - 255) corresponding to the traffic priority - 0: low; 1: medium; 2: high; 3: critical' + description: "numeric value (0 to 255) corresponding to the traffic priority\ + \ 0: low; 1: medium; 2: high; 3: critical" format: uint32 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 - description: QoS requirement description of the MTS session, applicable only - if mtsMode = 4 (QoS). If the qosD field is included, at least one of its subfields - shall be included. Any qosD subfield that is not included shall be ignored - in Multi-access Traffic Steering (MTS) + description: "QoS requirement description of the MTS session, applicable only\ + \ if mtsMode = 4 (QoS). If the qosD field is included, at least one of its\ + \ subfields shall be included. Any qosD subfield that is not included shall\ + \ be ignored in Multi-access Traffic Steering (MTS)" example: maxJitter: 7 maxLatency: 9 @@ -694,15 +786,15 @@ components: properties: nanoSeconds: type: integer - description: The nanoseconds part of the Time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: "The nanoseconds part of the Time. Time is defined as Unix-time\ + \ since January 1, 1970, 00:00:00 UTC" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 seconds: type: integer - description: The seconds part of the Time. Time is defined as Unixtime since - January 1, 1970, 00:00:00 UTC + description: "The seconds part of the Time. Time is defined as Unixtime\ + \ since January 1, 1970, 00:00:00 UTC" format: uint32 x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 @@ -713,33 +805,33 @@ components: nanoSeconds: 1 responses: "204": - description: Upon success, a response 204 No Content without any response body - is returned. + description: "Upon success, a response 204 No Content without any response body\ + \ is returned." "400": - description: 'Bad Request : used to indicate that incorrect parameters were - passed to the request.' + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "403": - description: 'Forbidden : operation is not allowed given the current status - of the resource.' + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "404": - description: 'Not Found : used when a client provided a URI that cannot be - mapped to a valid resource URI.' + description: "Not Found : used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' "412": - description: 'Precondition failed : used when a condition has failed during - conditional requests, e.g. when using ETags to avoid write conflicts when - using PUT' + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts when\ + \ using PUT" content: application/problem+json: schema: diff --git a/config/api/service-mgmt.yaml b/config/api/service-mgmt.yaml index dcd5f19f3fa955cdbb8f7c960e4691f44c6a737a..b313a37efa5c2998a2362c29856e9ba6e2496630 100644 --- a/config/api/service-mgmt.yaml +++ b/config/api/service-mgmt.yaml @@ -1,685 +1,1827 @@ openapi: 3.0.0 -servers: - - url: 'https://localhost/sandboxname/mec_service_mgmt/v1' info: title: MEC Service Management API - version: 2.2.1 - description: - 'The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI. -

**Note**
MEC Sandbox supports all Service Management API endpoints; complete details on Service Management API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf).' - license: - name: BSD-3-Clause - url: 'https://forge.etsi.org/legal-matters' + description: The ETSI MEC ISG MEC011 MEC Service Management API described using + OpenAPI contact: email: cti_support@etsi.org + license: + name: BSD-3-Clause + url: https://forge.etsi.org/legal-matters + version: 3.1.1 externalDocs: - description: 'ETSI GS MEC011 Application Enablement API, V2.2.1' - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf + description: "ETSI GS MEC011 Application Enablement API, V3.1.1" + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf +servers: +- url: https://localhost/sandboxname/mec_service_mgmt/v1 tags: - - name: mec_service_mgmt +- name: appSubscriptions +- name: appServices +- name: services +- name: transports +- name: callbacks +- name: individualMECservice paths: - '/services': + /applications/{appInstanceId}/subscriptions: get: - description: >- - This method retrieves information about a list of mecService resources. - This method is typically used in "service availability query" procedure - operationId: Services_GET tags: - - mec_service_mgmt + - appSubscriptions + summary: Get subscriptions + description: "The GET method may be used to request information about all subscriptions\ + \ for this requestor. Upon success, the response contains entity body with\ + \ all the subscriptions for the requestor." + operationId: ApplicationsSubscriptions_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: "Upon success, a response message content containing the list\ + \ of links to the requested subscriptions is returned." + content: + application/json: + schema: + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + post: + tags: + - appSubscriptions + summary: Create subscription + description: "The POST method may be used to create a new subscription. One\ + \ example use case is to create a new subscription to the MEC service availability\ + \ notifications. Upon success, the response contains entity body describing\ + \ the created subscription." + operationId: ApplicationsSubscriptions_POST parameters: - - $ref: '#/components/parameters/Query.SerInstanceId' - - $ref: '#/components/parameters/Query.SerName' - - $ref: '#/components/parameters/Query.SerCategoryId' - - $ref: '#/components/parameters/Query.ConsumedLocalOnly' - - $ref: '#/components/parameters/Query.IsLocal' - - $ref: '#/components/parameters/Query.LocalityType' + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: Message content in the request contains a subscription to the + MEC application termination notifications that is to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + required: true responses: - '200': - $ref: '#/components/responses/Services200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '414': - $ref: '#/components/responses/414' - '/services/{serviceId}': - parameters: - - $ref: '#/components/parameters/Path.ServiceId' + "201": + description: Entity body in the request contains a subscription to the MEC + service availability notifications that is to be created. + headers: + location: + description: The resource URI of the created resource + style: simple + explode: false + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + callbacks: + ServiceAvailailityNotification: + '{$request.body#/callbackReference}': + post: + tags: + - callbacks + summary: Create callback + description: |- + 'Represents the service availability information that is used in the following cases + when the MEC platform announces the newly available + services to the authorized relevant MEC applications (e.g. the applications that indicate the services as "optional" or "required") that are subscribed to the corresponding service availability notifications when the MEC platform notifies the authorized relevant applications that are subscribed to the corresponding service availability notifications about the service availability changes.' + operationId: ServiceAvailabilityNotification_POST + requestBody: + $ref: '#/components/requestBodies/ServiceAvailabilityNotification' + responses: + "200": + description: "Expected responses from callback consumer, if it accepts\ + \ the callback" + deprecated: false + /applications/{appInstanceId}/subscriptions/{subscriptionId}: get: - description: >- - This method retrieves information about a mecService resource. This - method is typically used in "service availability query" procedure - operationId: ServicesServiceId_GET tags: - - mec_service_mgmt + - appSubscriptions + summary: Get subscription + description: "The GET method requests information about a subscription for this\ + \ requestor. Upon success, the response contains message content with the\ + \ subscription for the requestor." + operationId: ApplicationsSubscription_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string responses: - '200': - $ref: '#/components/responses/ServicesServiceId200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '/applications/{appInstanceId}/services': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + "200": + description: "Upon success, a response message content containing the requested\ + \ subscription is returned." + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + delete: + tags: + - appSubscriptions + summary: delete subscription + description: This method deletes a mecSrvMgmtSubscription. This method is typically + used in "Unsubscribing from service availability event notifications" procedure. + operationId: ApplicationsSubscription_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: No Content + content: {} + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /applications/{appInstanceId}/services: get: - description: >- - This method retrieves information about a list of mecService resources. + tags: + - appServices + summary: get services + description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure operationId: AppServices_GET - tags: - - mec_service_mgmt parameters: - - $ref: '#/components/parameters/Query.SerInstanceId' - - $ref: '#/components/parameters/Query.SerName' - - $ref: '#/components/parameters/Query.SerCategoryId' - - $ref: '#/components/parameters/Query.ConsumedLocalOnly' - - $ref: '#/components/parameters/Query.IsLocal' - - $ref: '#/components/parameters/Query.LocalityType' + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: ser_instance_id + in: query + description: A MEC application instance may use multiple ser_instance_ids + as an input parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or + none of them shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: A MEC application instance may use multiple ser_names as an input + parameter to query the availability of a list of MEC service instances. + Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them + shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: A MEC application instance may use ser_category_id as an input + parameter to query the availability of a list of MEC service instances in + a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" + or none of them shall be present. + required: false + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: Indicate whether the service can only be consumed by the MEC applications + located in the same locality (as defined by scopeOfLocality) as this service + instance. + required: false + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + required: false + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: A MEC application instance may use scope_of_locality as an input parameter + to query the availability of a list of MEC service instances with a certain + scope of locality. + required: false + style: form + explode: true + schema: + type: string responses: - '200': - $ref: '#/components/responses/Services200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '414': - $ref: '#/components/responses/414' + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + type: array + example: + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + items: + $ref: '#/components/schemas/ServiceInfo' + x-content-type: application/json + example: + ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "414": + description: It is used to indicate that the server is refusing to process + the request because the request URI is longer than the server is willing + or able to process. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false post: - description: >- - This method is used to create a mecService resource. This method is - typically used in "service availability update and new service - registration" procedure - operationId: AppServices_POST tags: - - mec_service_mgmt - responses: - '201': - $ref: '#/components/responses/Services201' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + - appServices + summary: create service + description: This method is used to create a mecService resource. This method + is typically used in "service availability update and new service registration" + procedure + operationId: AppServices_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string requestBody: - $ref: '#/components/requestBodies/ServicesPost' - '/applications/{appInstanceId}/services/{serviceId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.ServiceId' + description: New ServiceInfo with updated "state" is included as entity body + of the request + content: + application/json: + schema: + $ref: '#/components/schemas/appInstanceId_services_body' + required: true + responses: + "201": + description: "Upon success, the HTTP response shall include a Location HTTP\ + \ header that contains the resource URI of the created resource." + headers: + location: + description: The resource URI of the created resource + style: simple + explode: false + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /applications/{appInstanceId}/services/{serviceId}: get: - description: >- - This method retrieves information about a mecService resource. This - method is typically used in "service availability query" procedure - operationId: AppServicesServiceId_GET tags: - - mec_service_mgmt + - appServices + summary: get service + description: This method retrieves information about a mecService resource. + This method is typically used in "service availability query" procedure + operationId: AppServicesServiceId_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance (see note). + required: true + style: simple + explode: false + schema: + type: string responses: - '200': - $ref: '#/components/responses/ServicesServiceId200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false put: + tags: + - appServices + summary: update service description: This method updates the information about a mecService resource operationId: AppServicesServiceId_PUT - tags: - - mec_service_mgmt - responses: - '200': - $ref: '#/components/responses/ServicesServiceId200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '412': - $ref: '#/components/responses/412' + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + explode: false + schema: + type: string requestBody: - $ref: '#/components/requestBodies/ServicesServiceId' + description: New ServiceInfo with updated "state" is included as entity body + of the request + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + required: true + responses: + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "412": + description: "Precondition Failed. It is used when a condition has failed\ + \ during conditional requests, e.g. when using ETags to avoid write conflicts." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false delete: - description: >- - This method deletes a mecService resource. This method is typically used in the service deregistration procedure. - operationId: AppServicesServiceId_DELETE tags: - - mec_service_mgmt + - appServices + summary: delete service + description: 'This method deletes a mecService resource. This method is typically + used in the service deregistration procedure. ' + operationId: AppServicesServiceId_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + explode: false + schema: + type: string responses: - '204': + "204": description: No Content - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '/applications/{appInstanceId}/subscriptions': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + content: {} + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /services: get: - description: >- - The GET method may be used to request information about all - subscriptions for this requestor. Upon success, the response contains - entity body with all the subscriptions for the requestor. - operationId: ApplicationsSubscriptions_GET tags: - - mec_service_mgmt + - services + summary: get services + description: This method retrieves information about a list of mecService resources. + This method is typically used in "service availability query" procedure + operationId: Services_GET + parameters: + - name: ser_instance_id + in: query + description: A MEC application instance may use multiple ser_instance_ids + as an input parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or + none of them shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: A MEC application instance may use multiple ser_names as an input + parameter to query the availability of a list of MEC service instances. + Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them + shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: A MEC application instance may use ser_category_id as an input + parameter to query the availability of a list of MEC service instances in + a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" + or none of them shall be present. + required: false + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: Indicate whether the service can only be consumed by the MEC applications + located in the same locality (as defined by scopeOfLocality) as this service + instance. + required: false + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + required: false + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: A MEC application instance may use scope_of_locality as an input parameter + to query the availability of a list of MEC service instances with a certain + scope of locality. + required: false + style: form + explode: true + schema: + type: string responses: - '200': - $ref: '#/components/responses/ApplicationsSubscriptions200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - post: - description: >- - The POST method may be used to create a new subscription. One example - use case is to create a new subscription to the MEC service - availability notifications. Upon success, the response contains entity - body describing the created subscription. - operationId: ApplicationsSubscriptions_POST + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + type: array + example: + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + items: + $ref: '#/components/schemas/ServiceInfo' + x-content-type: application/json + example: + ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "414": + description: It is used to indicate that the server is refusing to process + the request because the request URI is longer than the server is willing + or able to process. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /services/{serviceId}: + get: tags: - - mec_service_mgmt + - services + summary: get service + description: This method retrieves information about a mecService resource. + This method is typically used in "service availability query" procedure + operationId: ServicesServiceId_GET + parameters: + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + explode: false + schema: + type: string + x-etsi-notes: "NOTE:\t serviceId corresponds to serInstanceId" responses: - '201': - $ref: '#/components/responses/ApplicationsSubscriptions201' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - requestBody: - $ref: '#/components/requestBodies/ApplicationsSubscriptions' - callbacks: - serviceAvailabilityNotification: - $ref: '#/components/callbacks/ServiceAvailabilityNotification' - '/applications/{appInstanceId}/subscriptions/{subscriptionId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.SubscriptionId' + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /transports: get: - description: >- - The GET method requests information about a subscription for this - requestor. Upon success, the response contains entity body with the - subscription for the requestor. - operationId: ApplicationsSubscription_GET tags: - - mec_service_mgmt + - transports + summary: Get transports + description: This method retrieves information about a list of available transports. + This method is typically used by a service-producing application to discover + transports provided by the MEC platform in the "transport information query" + procedure + operationId: Transports_GET + parameters: [] responses: - '200': - $ref: '#/components/responses/ApplicationsSubscription200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - delete: - description: >- - This method deletes a mecSrvMgmtSubscription. This method is typically used - in "Unsubscribing from service availability event notifications" - procedure. - operationId: ApplicationsSubscription_DELETE + "200": + description: It is used to indicate nonspecific success. The response messages + content contains a representation of the resource. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TransportInfo' + x-content-type: application/json + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /resource_uri_allocated_by_MEC_platform: + get: tags: - - mec_service_mgmt + - individualMECservice + summary: get mecServiceLiveness + description: This method retrieves information about an "Individual mecServiceLiveness" + resource + operationId: get_individual_MEC_service responses: - '204': - description: No Content - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '/transports': - get: - description: >- - This method retrieves information about a list of available transports. - This method is typically used by a service-producing application to - discover transports provided by the MEC platform in the - "transport information query" procedure - operationId: Transports_GET + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceLivenessInfo' + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + patch: tags: - - mec_service_mgmt + - individualMECservice + summary: Update mecServiceLiveness + description: This method updates a resource on top of the existing resource + state with partial changes described by the client. + operationId: patch_individual_MEC_service + requestBody: + description: It contains an update of the liveness state. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceLivenessUpdate' + required: true responses: - '200': - $ref: '#/components/responses/Transports200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + "200": + description: "Upon success, a response message content is returned containing\ + \ the updated liveness interval value of the service Instance." + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceLivenessInfo' + "204": + description: Successful response sent when there is no need to provide a + new liveness interval value to the service Instance. + content: {} + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: The operation is not allowed due to a conflict with the state + of the resource. The MEC platform shall respond with this code if the + service instance is in "INACTIVE" state. More information shall be provided + in the "detail" attribute of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "It is used when a condition has failed during conditional\ + \ requests, e.g. when using ETags to avoid write conflicts. In the returned\ + \ ProblemDetails structure, the \"detail\" attribute should convey more\ + \ information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' components: schemas: CategoryRef: - description: This type represents the category reference - type: object + title: CategoryRef required: - - href - - id - - name - - version + - href + - id + - name + - version + type: object properties: href: - description: Reference of the catalogue type: string - format: uri + description: Reference of the catalogue + example: "[\"/example/catalogue1\"]" id: - description: Unique identifier of the category type: string + description: Unique identifier of the category + example: "[\"id12345\"]" name: - description: Name of the category, example values include RNI, Location & Bandwidth Management type: string + description: "Name of the category, example values include RNI, Location\ + \ & Bandwidth Management" + example: "[\"RNI\"]" version: - description: Category version type: string - CategoryRefs: - description: Categories of services about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/CategoryRef' - EndPointInfoAddresses: - description: >- - Entry point information of the service as one or more pairs of IP - address and port + description: Category version + example: "[\"version1\"]" + description: This type represents the category reference + example: + name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + EndPointInfo.Address: + title: EndPointInfo.Address + required: + - host + - port type: object + properties: + host: + type: string + description: Host portion of the address + example: "[\"192.0.2.0\"]" + port: + type: integer + description: Port portion of the address + description: A IP address and port pair + EndPointInfo.Addresses: + title: EndPointInfo.Addresses required: - - addresses + - addresses + type: object properties: addresses: type: array - minItems: 0 + description: Entry point information of the service as one or more pairs + of IP address and port. See note. items: - description: A IP address and port pair - type: object - required: - - host - - port - properties: - host: - description: Host portion of the address - type: string - port: - description: Port portion of the address - type: integer - format: uint32 - EndPointInfoAlternative: - description: >- - Entry point information of the service in a format defined by an - implementation, or in an external specification. - type: object + $ref: '#/components/schemas/EndPointInfo.Address' + description: This type represents information about a transport endpoint. + EndPointInfo.Alternative: + title: EndPointInfo.Alternative required: - - alternative + - alternative + type: object properties: alternative: type: object - EndPointInfoUris: - description: >- - Entry point information of the service as string, formatted according to - URI syntax - type: object + description: "Entry point information of the service in a format defined\ + \ by an implementation, or in an external specification. See note." + description: This type represents information about a transport endpoint. + EndPointInfo.Uris: + title: EndPointInfo.Uris required: - - uris + - uris + type: object properties: uris: type: array - minItems: 0 + description: "Entry point information of the service as string, formatted\ + \ according to URI syntax" + items: + type: string + description: This type represents information about a transport endpoint. + EndPointInfo.Fqdn: + title: EndPointInfo.Fqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + description: Fully Qualified Domain Name of the service. See note. items: - description: Entry point information of the service type: string - format: uri + description: 'This type represents information about a transport endpoint. ' LinkType: - description: This type represents a type of link and may be referenced from data structures + title: LinkType type: object properties: href: - description: URI referring to a resource type: string - format: uri - example: '/mecSerMgmtApi/example' - SubscriptionLinkList: - description: >- - This type represents a list of links related to currently existing - subscriptions for a MEC application instance. This information - is returned when sending a request to receive current subscriptions. + description: URI referring to a resource + example: "[\"/mecSerMgmtApi/example\"]" + description: This type represents a type of link and may be referenced from + data structures + example: + href: "[\"/mecSerMgmtApi/example\"]" + MecServiceMgmtApiSubscriptionLinkList.Links: + title: MecServiceMgmtApiSubscriptionLinkList.Links + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + subscriptions: + type: array + description: The MEC application instance's subscriptions + items: + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription' + description: Self-referring URI. + example: + subscriptions: + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + self: + href: "[\"/mecSerMgmtApi/example\"]" + MecServiceMgmtApiSubscriptionLinkList.Subscription: + title: MecServiceMgmtApiSubscriptionLinkList.Subscription + required: + - href + - rel type: object + properties: + href: + type: string + description: URI referring to a resource + example: "[\"/mecSerMgmtApi/example\"]" + rel: + type: string + description: The value shall be se to SerAvailabilityNotificationSubscription. + description: A link to a subscription. + example: + rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + MecServiceMgmtApiSubscriptionLinkList: + title: MecServiceMgmtApiSubscriptionLinkList required: - - _links + - _links + type: object properties: _links: - description: Self-referring URI. - type: object - required: - - self - properties: - self: - $ref: '#/components/schemas/LinkType' - subscriptions: - description: The MEC application instance's subscriptions - type: array - items: - description: A link to a subscription. - type: object - required: - - href - - subscriptionType - properties: - href: - description: URI referring to a resource - type: string - format: uri - subscriptionType: - description: >- - Type of the subscription. The values are as defined in - the "subscriptionType" attribute for each different Mp1 - event subscription data type. - type: string + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links' + description: This type represents a list of links related to currently existing + subscriptions for a MEC application instance. This information is returned + when sending a request to receive current subscriptions. + example: + _links: + subscriptions: + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + self: + href: "[\"/mecSerMgmtApi/example\"]" ProblemDetails: + title: ProblemDetails type: object properties: type: type: string - format: uri - description: >- - A URI reference according to IETF RFC 3986 that identifies the problem - type + description: A URI reference according to IETF RFC 3986 that identifies + the problem type title: type: string - description: 'A short, human-readable summary of the problem type' + description: "A short, human-readable summary of the problem type" status: type: integer - format: uint32 description: The HTTP status code for this occurrence of the problem detail: type: string - description: A human-readable explanation specific to this occurrence of the problem + description: A human-readable explanation specific to this occurrence of + the problem instance: type: string - format: uri - description: A URI reference that identifies the specific occurrence of the problem - required: - - status - - detail - GrantType: - description: OAuth 2.0 grant type + description: A URI reference that identifies the specific occurrence of + the problem + SecurityInfo.OAuth2Info.GrantType: + title: SecurityInfo.OAuth2Info.GrantType type: string + description: OAuth 2.0 grant type + example: "[\"OAUTH2_CLIENT_CREDENTIALS\"]" enum: - - OAUTH2_AUTHORIZATION_CODE - - OAUTH2_IMPLICIT_GRANT - - OAUTH2_RESOURCE_OWNER - - OAUTH2_CLIENT_CREDENTIALS - example: 'OAUTH2_CLIENT_CREDENTIALS' - OAuth2Info: - description: Parameters related to use of OAuth 2.0 - type: object + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS + SecurityInfo.OAuth2Info: + title: SecurityInfo.OAuth2Info required: - - grantTypes - - tokenEndpoint + - grantTypes + - tokenEndpoint + type: object properties: grantTypes: - description: >- - List of supported OAuth 2.0 grant types. - type: array - minItems: 1 maxItems: 4 + minItems: 1 + type: array + description: List of supported OAuth 2.0 grant types. items: - $ref: '#/components/schemas/GrantType' + $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType' tokenEndpoint: - description: The token endpoint type: string - format: uri + description: The token endpoint + example: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + description: Parameters related to use of OAuth 2.0 + example: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" SecurityInfo: - description: This type represents security information related to a transport + title: SecurityInfo type: object properties: oAuth2Info: - $ref: '#/components/schemas/OAuth2Info' + $ref: '#/components/schemas/SecurityInfo.OAuth2Info' + description: This type represents security information related to a transport + example: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" Self: - description: Self-referring URI. - type: object + title: Self required: - - self + - self + type: object properties: self: $ref: '#/components/schemas/LinkType' - readOnly: true + description: Self-referring URI. + example: + self: + href: "[\"/mecSerMgmtApi/example\"]" SerAvailabilityNotificationSubscription: - description: >- - This type represents a subscription to the notifications from the - MEC platform regarding the availability of a MEC service or a - list of MEC services. - type: object + title: SerAvailabilityNotificationSubscription required: - - subscriptionType - - callbackReference + - _links + - callbackReference + - subscriptionType + type: object properties: subscriptionType: - description: Shall be set to SerAvailabilityNotificationSubscription. type: string + description: Shall be set to SerAvailabilityNotificationSubscription. + example: "[\"SerAvailabilityNotificationSubscription\"]" callbackReference: - description: >- - URI selected by the MEC application instance to receive - notifications on the subscribed MEC service availability - information. This shall be included in both the request and the - response. type: string - format: uri + description: URI selected by the MEC application instance to receive notifications + on the subscribed MEC service availability information. This shall be + included in both the request and the response. _links: $ref: '#/components/schemas/Self' filteringCriteria: - description: >- - Filtering criteria to match services for which events are requested to be reported. - If absent, matches all services. All child attributes are combined with the logical - "AND" operation. - type: object - not: - required: [serInstanceIds, serNames, serCategories] - properties: - serInstanceIds: - $ref: '#/components/schemas/SerInstanceIds' - serNames: - $ref: '#/components/schemas/SerNames' - serCategories: - $ref: '#/components/schemas/CategoryRefs' - states: - $ref: '#/components/schemas/ServiceStates' - isLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. - type: boolean - ServiceAvailabilityNotification: - description: >- - This type represents the service availability information. + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria' + example: + filteringCriteria: + serNames: + - serNames + - serNames + serInstanceIds: + - serInstanceIds + - serInstanceIds + serCategories: + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + states: + - "[\"ACTIVE\"]" + - "[\"ACTIVE\"]" + isLocal: false + subscriptionType: "[\"SerAvailabilityNotificationSubscription\"]" + _links: + self: + href: "[\"/mecSerMgmtApi/example\"]" + callbackReference: callbackReference + x-etsi-notes: "NOTE:\tThe attributes \"serInstanceIds\", \"serNames\" and \"\ + serCategories\" provide mutually-exclusive alternatives to define a set of\ + \ services. Only one of them may be present." + SerAvailabilityNotificationSubscription.FilteringCriteria: + title: SerAvailabilityNotificationSubscription.FilteringCriteria type: object + properties: + serInstanceIds: + type: array + description: Identifiers of service instances about which to report events. + items: + type: string + serNames: + type: array + description: Names of services about which to report events. + items: + type: string + serCategories: + type: array + description: Categories of services about which to report events. + items: + $ref: '#/components/schemas/CategoryRef' + states: + type: array + description: "States of the services about which to report events. If the\ + \ event is a state change, this filter represents the state after the\ + \ change." + items: + $ref: '#/components/schemas/ServiceState' + isLocal: + type: boolean + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + example: false + description: "Filtering criteria to match services for which events are requested\ + \ to be reported. If absent, matches all services. All child attributes are\ + \ combined with the logical \"AND\" operation." + example: + serNames: + - serNames + - serNames + serInstanceIds: + - serInstanceIds + - serInstanceIds + serCategories: + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + states: + - "[\"ACTIVE\"]" + - "[\"ACTIVE\"]" + isLocal: false + ServiceAvailabilityNotification: + title: ServiceAvailabilityNotification required: - - notificationType - - serviceReferences - - _links + - _links + - notificationType + - serviceReferences + type: object properties: notificationType: - description: Shall be set to SerAvailabilityNotification. type: string + description: Shall be set to SerAvailabilityNotificationSubscription. + example: "[\"SerAvailabilityNotificationSubscription\"]" serviceReferences: type: array items: - description: List of links to services whose availability has changed. - type: object - required: - - serName - - serInstanceId - - state - - changeType - properties: - link: - $ref: '#/components/schemas/LinkType' - serName: - $ref: '#/components/schemas/SerName' - serInstanceId: - $ref: '#/components/schemas/SerInstanceId' - state: - $ref: '#/components/schemas/ServiceState' - changeType: - description: >- - Type of the change. Valid values: - ADDED: The service was newly added. - REMOVED: The service was removed. - STATE_CHANGED: Only the state of the service was changed. - ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state. - type: string - enum: - - ADDED - - REMOVED - - STATE_CHANGED - - ATTRIBUTES_CHANGED + $ref: '#/components/schemas/ServiceAvailabilityNotification.ServiceReferences' _links: $ref: '#/components/schemas/Subscription' + description: This type represents the service availability information. + ServiceAvailabilityNotification.ServiceReferences: + title: ServiceAvailabilityNotification.ServiceReferences + required: + - changeType + - serInstanceId + - serName + - state + type: object + properties: + link: + $ref: '#/components/schemas/LinkType' + serName: + type: string + description: The name of the service. This is how the service producing + MEC application identifies the service instance it produces. + example: "[\"ExampleService\"]" + serInstanceId: + type: string + description: Identifier of the service instance assigned by the MEC platform. + example: "[\"ServiceInstance123\"]" + state: + $ref: '#/components/schemas/ServiceState' + changeType: + $ref: '#/components/schemas/ServiceAvailabilityNotification.ChangeType' + description: List of links to services whose availability has changed. + ServiceAvailabilityNotification.ChangeType: + title: ServiceAvailabilityNotification.ChangeType + type: string + description: "Type of the change. Valid values:\n 1. ADDED: The service was\ + \ newly added.\n 2. REMOVED: The service was removed.\n 3. STATE_CHANGED:\ + \ Only the state of the service was changed. \n 4. ATTRIBUTES_CHANGED: At\ + \ least one attribute of the service other than state was changed. The change\ + \ may or may not include changing the state." + example: "[\"ADDED\"]" + enum: + - ADDED + - REMOVED + - STATE_CHANGED + - ATTRIBUTES_CHANGED SerializerType: - description: The enumeration represents types of serializers + title: SerializerType type: string + description: The enumeration represents types of serializers + example: "[\"JSON\"]" enum: - - JSON - - XML - - PROTOBUF3 + - JSON + - XML + - PROTOBUF3 LocalityType: - description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST + title: LocalityType type: string + description: "The scope of locality as expressed by \"consumedLocalOnly\" and\ + \ \"isLocal\". If absent, defaults to MEC_HOST" + example: "[\"MEC_SYSTEM\"]" enum: - - MEC_SYSTEM - - MEC_HOST - - NFVI_POP - - ZONE - - ZONE_GROUP - - NFVI_NODE + - MEC_SYSTEM + - MEC_HOST + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE ServiceState: - description: This enumeration defines the possible states of a service. + title: ServiceState type: string + description: This enumeration defines the possible states of a service. + example: "[\"ACTIVE\"]" enum: - - ACTIVE - - INACTIVE - - SUSPENDED - ServiceStates: - description: >- - States of the services about which to report events. If the event is - a state change, this filter represents the state after the change. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceState' - SerInstanceId: - description: >- - Identifier of the service instance assigned by the MEC platform. - type: string - readOnly: true - SerInstanceIds: - description: Identifiers of service instances about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/SerInstanceId' - SerName: - description: >- - The name of the service. This is how the service producing MEC - application identifies the service instance it produces. - type: string - SerNames: - description: Names of services about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/SerName' - ServiceInfoPost: - description: This type represents the general information of a MEC service. - type: object - required: - - serName - - version - - state - - serializer - oneOf: - - required: [transportId] - - required: [transportInfo] - properties: - serInstanceId: - $ref: '#/components/schemas/SerInstanceId' - serName: - $ref: '#/components/schemas/SerName' - serCategory: - $ref: '#/components/schemas/CategoryRef' - version: - description: Service version - type: string - state: - $ref: '#/components/schemas/ServiceState' - transportId: - description: >- - Identifier of the platform-provided transport to be used by the service. - Valid identifiers may be obtained using the "Transport information - query" procedure. May be present in POST requests to signal the use of a - platform-provided transport for the service, and shall be absent - otherwise. - type: string - writeOnly: true - transportInfo: - $ref: '#/components/schemas/TransportInfo' - serializer: - $ref: '#/components/schemas/SerializerType' - scopeOfLocality: - $ref: '#/components/schemas/LocalityType' - consumedLocalOnly: - description: >- - Indicate whether the service can only be consumed by the MEC applications - located in the same locality (as defined by scopeOfLocality) as this - service instance. - type: boolean - isLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. - type: boolean + - ACTIVE + - INACTIVE + - SUSPENDED ServiceInfo: - description: This type represents the general information of a MEC service. - type: object + title: ServiceInfo required: - - serName - - version - - state - - transportInfo - - serializer - - _links + - serName + - serializer + - state + - transportInfo + - version + type: object properties: serInstanceId: - $ref: '#/components/schemas/SerInstanceId' + type: string + description: Identifier of the service instance assigned by the MEC platform. + example: "[\"ServiceInstance123\"]" serName: - $ref: '#/components/schemas/SerName' + type: string + description: The name of the service. This is how the service producing + MEC application identifies the service instance it produces. + example: "[\"ExampleService\"]" serCategory: $ref: '#/components/schemas/CategoryRef' version: - description: Service version type: string + description: Service version + example: "[\"ServiceVersion1\"]" state: $ref: '#/components/schemas/ServiceState' transportId: type: string - description: > - Identifier of the platform-provided transport to be used by - the service. Valid identifiers may be obtained using the - "Transport information query" procedure. May be present - in POST requests to signal the use of a platform-provided - transport for the service, and shall be absent otherwise. - See note 2. + description: "Identifier of the platform-provided transport to be used by\ + \ the service. Valid identifiers may be obtained using the \"Transport\ + \ information query\" procedure. May be present in POST requests to signal\ + \ the use of a platform-provided transport for the service, and shall\ + \ be absent otherwise. See note 2." + example: "[\"transportId1\"]" transportInfo: $ref: '#/components/schemas/TransportInfo' serializer: @@ -687,559 +1829,235 @@ components: scopeOfLocality: $ref: '#/components/schemas/LocalityType' consumedLocalOnly: - description: >- - Indicate whether the service can only be consumed by the MEC applications - located in the same locality (as defined by scopeOfLocality) as this - service instance. type: boolean + description: Indicate whether the service can only be consumed by the MEC + applications located in the same locality (as defined by scopeOfLocality) + as this service instance. + example: false isLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. type: boolean + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + example: false livenessInterval: type: integer - description: - Interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3). - If the service-producing application supports sending "heartbeat" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval. - If the application has provided this attribute in the request and the MEC platform requires "heartbeat" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value. - If the MEC platform does not require "heartbeat" messages for this service instance it shall omit the attribute in responses. + description: "Interval (in seconds) between two consecutive \"heartbeat\"\ + \ messages (see clause 8.2.10.3.3). If the service-producing application\ + \ supports sending \"heartbeat\" messages, it shall include this attribute\ + \ in the registration request. In this case, the application shall either\ + \ set the value of this attribute to zero or shall use this attribute\ + \ to propose a non-zero positive value for the liveness interval. If the\ + \ application has provided this attribute in the request and the MEC platform\ + \ requires \"heartbeat\" messages, the MEC platform shall return this\ + \ attribute value in the HTTP responses. The MEC platform may use the\ + \ value proposed in the request or may choose a different value. If the\ + \ MEC platform does not require \"heartbeat\" messages for this service\ + \ instance it shall omit the attribute in responses." _links: - type: object - required: - - self - properties: - self: - $ref: '#/components/schemas/LinkType' - liveness: - $ref: '#/components/schemas/LinkType' + $ref: '#/components/schemas/ServiceInfo__links' + description: This type represents the general information of a MEC service. example: - serInstanceId: 'rnisInstance1' - serName: 'myRnis' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'v2' - version: '2.2.1' - state: 'ACTIVE' + scopeOfLocality: "[\"MEC_SYSTEM\"]" transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - 'https://my.callback.com/sandboxname/rni/v2/' - serializer: 'JSON' - scopeOfLocality: 'MEC_SYSTEM' + implSpecificInfo: implSpecificInfo + protocol: "[\"HTTP\"]" + endpoint: "" + security: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + name: "[\"REST\"]" + description: "[\"REST API\"]" + id: "[\"TransId12345\"]" + type: "[\"REST_HTTP\"]" + version: "[\"2.0\"]" + transportId: "[\"transportId1\"]" + _links: + liveness: null + self: + href: "[\"/mecSerMgmtApi/example\"]" + serializer: "[\"JSON\"]" + consumedLocalOnly: false + version: "[\"ServiceVersion1\"]" + serInstanceId: "[\"ServiceInstance123\"]" + isLocal: false + serCategory: + name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + livenessInterval: 0 + serName: "[\"ExampleService\"]" + state: "[\"ACTIVE\"]" + x-etsi-notes: "NOTE 1:\tThe service category may be included in the application\ + \ descriptor. It may be allocated by the operator or by the application developer.\n\ + NOTE 2:\tEither transportId or transportInfo but not both shall be present\ + \ in POST requests.\nNOTE 3:\tValues NFVI_POP, ZONE and NFVI_NODE are used\ + \ when the service instance is deployed as a VNF.\nNOTE 4:\tThe isLocal is\ + \ used only in service availability query response and service availability\ + \ subscription/notification messages.\nNOTE 5:\tValue ZONE_GROUP can be used\ + \ when the service instance is deployed as a VNF.\nNOTE 6:\tRegarding the\ + \ value MEC_SYSTEM, if the service is running on the same MEC system as the\ + \ MEC app, then it will be local to it." ServiceLivenessInfo: - type: object required: - - state - - timeStamp - - interval + - interval + - state + - timeStamp + type: object properties: state: $ref: '#/components/schemas/ServiceState' timeStamp: - type: object - description: The time when the last "heartbeat" message was received by MEC platform - required: - - seconds - - nanoSeconds - properties: - seconds: - type: integer - nanoSeconds: - type: integer + $ref: '#/components/schemas/ServiceLivenessInfo_timeStamp' interval: type: integer - description: The interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3) that MEC platform has determined. + description: The interval (in seconds) between two consecutive "heartbeat" + messages (see clause 8.2.10.3.3) that MEC platform has determined. + example: + timeStamp: + seconds: 0 + nanoSeconds: 6 + interval: 1 + state: "[\"ACTIVE\"]" ServiceLivenessUpdate: - type: object required: - - state + - state + type: object properties: state: $ref: '#/components/schemas/ServiceState' Subscription: - description: A link to the related subscription - type: object + title: Subscription required: - - subscription + - subscription + type: object properties: subscription: $ref: '#/components/schemas/LinkType' + description: A link to the related subscription TransportInfo: - description: This type represents the general information of a MEC service. - type: object + title: TransportInfo required: - - id - - name - - type - - protocol - - version - - endpoint - - security + - endpoint + - id + - name + - protocol + - security + - type + - version + type: object properties: id: - description: The identifier of this transport type: string + description: The identifier of this transport + example: "[\"TransId12345\"]" name: - description: The name of this transport type: string + description: The name of this transport + example: "[\"REST\"]" description: - description: Human-readable description of this transport type: string + description: Human-readable description of this transport + example: "[\"REST API\"]" type: $ref: '#/components/schemas/TransportType' protocol: - description: The name of the protocol used. Shall be set to HTTP for a REST API. type: string + description: The name of the protocol used. Shall be set to HTTP for a REST + API. + example: "[\"HTTP\"]" version: - description: The version of the protocol used type: string + description: The version of the protocol used + example: "[\"2.0\"]" endpoint: description: This type represents information about a transport endpoint - type: object oneOf: - - $ref: '#/components/schemas/EndPointInfoUris' - - $ref: '#/components/schemas/EndPointInfoAddresses' - - $ref: '#/components/schemas/EndPointInfoAlternative' + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Fqdn' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' + x-etsi-notes: "NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or\ + \ \"alternative\" shall be present." security: $ref: '#/components/schemas/SecurityInfo' implSpecificInfo: + type: string description: Additional implementation specific details of the transport - type: object + description: This type represents the general information of a MEC service. + example: + implSpecificInfo: implSpecificInfo + protocol: "[\"HTTP\"]" + endpoint: "" + security: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + name: "[\"REST\"]" + description: "[\"REST API\"]" + id: "[\"TransId12345\"]" + type: "[\"REST_HTTP\"]" + version: "[\"2.0\"]" TransportType: - description: The enumeration TransportType represents types of transports + title: TransportType type: string + description: The enumeration TransportType represents types of transports + example: "[\"REST_HTTP\"]" enum: - - REST_HTTP - - MB_TOPIC_BASED - - MB_ROUTING - - MB_PUBSUB - - RPC - - RPC_STREAMING - - WEBSOCKET - parameters: - Path.AppInstanceId: - name: appInstanceId - description: >- - Represents a MEC application instance. Note that the - appInstanceId is allocated by the MEC platform manager. - in: path - required: true - schema: - type: string - Path.SubscriptionId: - name: subscriptionId - description: >- - Represents a subscription to the notifications from the MEC - platform. - in: path - required: true - schema: - type: string - Path.ServiceId: - name: serviceId - description: Represents a MEC service instance. - in: path - required: true - schema: - type: string - Query.SerCategoryId: - name: ser_category_id - description: >- - A MEC application instance may use ser_category_id as an input - parameter to query the availability of a list of MEC service - instances in a serCategory. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: string - Query.SerInstanceId: - name: ser_instance_id - description: >- - A MEC application instance may use multiple ser_instance_ids as - an input parameter to query the availability of a list of MEC - service instances. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: array - items: - type: string - Query.SerName: - name: ser_name - description: >- - A MEC application instance may use multiple ser_names as an - input parameter to query the availability of a list of MEC - service instances. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: array - items: - type: string - Query.LocalityType: - name: scope_of_locality - description: >- - A MEC application instance may use scope_of_locality as an input - parameter to query the availability of a list of MEC service instances - with a certain scope of locality. - in: query - required: false - schema: - type: string - Query.IsLocal: - name: is_local - description: >- - Indicate whether the service is located in the same locality (as - defined by scopeOfLocality) as the consuming MEC application. - in: query - required: false - schema: - type: boolean - Query.ConsumedLocalOnly: - name: consumed_local_only - description: >- - Indicate whether the service can only be consumed by the MEC - applications located in the same locality (as defined by - scopeOfLocality) as this service instance. - in: query - required: false - schema: - type: boolean - responses: - ApplicationsSubscriptions200: - description: >- - Upon success, a response body containing the list of links to the - requested subscriptions is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriptionLinkList' - links: - getIndividualmecSerMgmtApiSubscriptionLinkList: - $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscriptionLinkList' - delIndividualmecSerMgmtApiSubscriptionLinkList: - $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscriptionLinkList' - ApplicationsSubscriptions201: - description: >- - Entity body in the request contains a subscription to the MEC - service availability notifications that is to be created. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - links: - getIndividualmecSerMgmtApiSubscription: - $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscription' - delIndividualmecSerMgmtApiSubscription: - $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscription' - ApplicationsSubscription200: - description: >- - Upon success, a response body containing the requested subscription - is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - Services200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceInfo' - links: - getIndividualmecService: - $ref: '#/components/links/GetIndividualmecService' - putIndividualmecService: - $ref: '#/components/links/PutIndividualmecService' - Services201: - description: >- - Upon success, the HTTP response shall include a Location HTTP header - that contains the resource URI of the created resource. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - links: - getIndividualmecService: - $ref: '#/components/links/GetIndividualmecService' - putIndividualmecService: - $ref: '#/components/links/PutIndividualmecService' - ServicesServiceId200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - Transports200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/TransportInfo' - links: - getTransportInfo: - $ref: '#/components/links/GetTransportInfo' - 400: - description: >- - Bad Request. - It is used to indicate that incorrect parameters were passed to the request. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 401: - description: >- - Unauthorized. - It is used when the client did not submit the appropriate credentials. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 403: - description: >- - Forbidden. - The operation is not allowed given the current status of the resource. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 404: - description: >- - Not Found. - It is used when a client provided a URI that cannot be mapped - to a valid resource URI. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 409: - description: >- - Conflict. - The operation cannot be executed currently, due to a conflict with - the state of the resource. Typically, this is because the application - instance resource is in NOT_INSTANTIATED state. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 412: - description: >- - Precondition Failed. - It is used when a condition has failed during conditional requests, - e.g. when using ETags to avoid write conflicts. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 414: - description: >- - It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 429: - description: >- - Too Many Requests. - It is used when a rate limiter has triggered. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + appInstanceId_services_body: + description: New ServiceInfo with updated "state" is included as entity body + of the request + oneOf: + - type: object + - type: object + ServiceInfo__links: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + liveness: + $ref: '#/components/schemas/LinkType' + example: + liveness: null + self: + href: "[\"/mecSerMgmtApi/example\"]" + ServiceLivenessInfo_timeStamp: + required: + - nanoSeconds + - seconds + type: object + properties: + seconds: + type: integer + nanoSeconds: + type: integer + description: The time when the last "heartbeat" message was received by MEC + platform + example: + seconds: 0 + nanoSeconds: 6 requestBodies: - ApplicationsSubscriptions: - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - example: - subscriptionType: 'SerAvailabilityNotificationSubscription' - callbackReference: 'http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id' - filteringCriteria: - serNames: - - 'myRnis' - states: - - 'ACTIVE' - - 'INACTIVE' - isLocal: true - description: >- - Entity body in the request contains a subscription to the MEC - application termination notifications that is to be created. - required: true - Services: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true - ServicesPost: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfoPost' - example: - serName: 'myRnis' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'v2' - version: '2.2.1' - state: 'ACTIVE' - transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - 'https://my.callback.com/sandboxname/rni/v2/' - serializer: 'JSON' - scopeOfLocality: 'MEC_SYSTEM' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true - ServicesServiceId: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true ServiceAvailabilityNotification: content: application/json: schema: $ref: '#/components/schemas/ServiceAvailabilityNotification' required: true - callbacks: - ServiceAvailabilityNotification: - '{$request.body#/callbackReference}': - post: - description: >- - 'Represents the service availability information that - is used in the following cases - - when the MEC platform announces the newly available - services to the authorized relevant MEC applications (e.g. - the applications that indicate the services as "optional" - or "required") that are subscribed to the corresponding - service availability notifications - - when the MEC platform notifies the authorized relevant - applications that are subscribed to the corresponding - service availability notifications about the service availability changes.' - operationId: Sm_ServiceAvailabilityNotification_POST - tags: - - callbacks - requestBody: - $ref: '#/components/requestBodies/ServiceAvailabilityNotification' - responses: - '200': - description: Expected responses from callback consumer, if it accepts the callback - links: - GetIndividualmecService: - operationId: Sm_ServicesServiceId_GET - description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `GET /services/{serviceId}` - parameters: - serviceId: '$response.body#/serviceId' - PutIndividualmecService: - operationId: Sm_ServicesServiceId_PUT - description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `PUT /services/{serviceId}` - parameters: - serviceId: '$response.body#/serviceId' - GetTransportInfo: - operationId: Sm_AppServices_POST - description: The `id` value returned in the response can be used as the `transportId` parameter in `POST /applications/{appInstanceId}/services`. The first transport is provided as the link as wildcards are not supported - parameters: - transportId: '$response.body#/0/id' - GetIndividualmecSerMgmtApiSubscription: - operationId: Sm_ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/.*\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecSerMgmtApiSubscription: - operationId: Sm_ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - GetIndividualmecSerMgmtApiSubscriptionLinkList: - operationId: Sm_ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecSerMgmtApiSubscriptionLinkList: - operationId: Sm_ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - examples: - ServiceInfo: - value: - serInstanceId: 'rnisInstance1' - serName: 'myRnis' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'v2' - version: '2.2.1' - state: 'ACTIVE' - transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - 'https://my.callback.com/sandboxname/rni/v2/' - serializer: 'JSON' - scopeOfLocality: 'MEC_SYSTEM' diff --git a/config/api/vis-api.yaml b/config/api/vis-api.yaml index d7f12eaefb54ef3ba7e9d346a9b49678c19fcc8c..a4585ee4ce44cb03245cda5848d5652451863611 100644 --- a/config/api/vis-api.yaml +++ b/config/api/vis-api.yaml @@ -1,1221 +1,1623 @@ openapi: 3.0.0 info: + title: ETSI GS MEC 030 V2X Information Services API + description: ETSI GS MEC 030 V2X Information Services API described using OpenAPI. contact: - url: 'https://forge.etsi.org/rep/mec/gs030-vis-api' - title: ETSI GS MEC 030 - V2X Information API - version: 2.2.1 - description: - 'The ETSI MEC ISG MEC030 V2X Information API described using OpenAPI -

**Note**
MEC Sandbox supports all VIS API endpoints; complete details on the VIS API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/02.02.01_60/gs_mec030v020201p.pdf).' + name: ETSI Forge + url: https://forge.etsi.org/rep/mec/gs030-vis-api + email: cti_support@etsi.org license: name: BSD-3-Clause - url: 'https://forge.etsi.org/legal-matters' + url: https://forge.etsi.org/legal-matters + version: 3.2.2 externalDocs: - description: ETSI MEC030 V2.2.1 V2X Information API - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/02.02.01_60/gs_mec030v020201p.pdf + description: "ETSI GS MEC 030 V2X Information Services API, v3.2.1" + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/03.02.01_60/ servers: - - url: 'https://localhost/sandboxname/vis/v2' +- url: https://localhost/sandboxname/vis/v2 tags: - - name: v2xi - - name: unsupported - +- name: queries + description: Queries +- name: subscription + description: Subscription +- name: QoS +- name: V2X_msg paths: /queries/uu_unicast_provisioning_info: get: tags: - - 'v2xi' - summary: 'Used to query provisioning information for V2X communication over Uu unicast.' - description: 'Used to query provisioning information for V2X communication over Uu unicast.' + - queries + summary: Used to query provisioning information for V2X communication over Uu + unicast. + description: Used to query provisioning information for V2X communication over + Uu unicast. operationId: prov_info_uu_unicastGET parameters: - - in: query - name: location_info - schema: - type: string - required: true - description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area' - + - name: location_info + in: query + description: Comma separated list of locations to identify a cell of a base + station or a particular geographical area + required: true + style: form + explode: true + schema: + type: string responses: - '200': + "200": description: 'A response body containing the Uu unicast provisioning information. ' content: application/json: schema: $ref: '#/components/schemas/UuUnicastProvisioningInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /queries/uu_mbms_provisioning_info: get: tags: - - 'unsupported' - summary: 'retrieve information required for V2X communication over Uu MBMS.' - description: 'retrieve information required for V2X communication over Uu MBMS.' + - queries + summary: retrieve information required for V2X communication over Uu MBMS. + description: retrieve information required for V2X communication over Uu MBMS. operationId: prov_info_uu_mbmsGET parameters: - - in: query - name: location_info - schema: - type: string - required: true - description: 'omma separated list of locations to identify a cell of a base station or a particular geographical area' - + - name: location_info + in: query + description: omma separated list of locations to identify a cell of a base + station or a particular geographical area + required: true + style: form + explode: true + schema: + type: string responses: - '200': + "200": description: 'A response body containing the Uu unicast provisioning information. ' content: application/json: schema: $ref: '#/components/schemas/UuMbmsProvisioningInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /queries/pc5_provisioning_info: get: tags: - - 'unsupported' - summary: 'Query provisioning information for V2X communication over PC5.' - description: 'Query provisioning information for V2X communication over PC5.' + - queries + summary: Query provisioning information for V2X communication over PC5. + description: Query provisioning information for V2X communication over PC5. operationId: prov_infoGET parameters: - - in: query - name: location_info - schema: - type: string - required: true - description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area' + - name: location_info + in: query + description: Comma separated list of locations to identify a cell of a base + station or a particular geographical area + required: true + style: form + explode: true + schema: + type: string responses: - '200': - description: 'A response body containing the PC5 provisioning information is returned.' + "200": + description: A response body containing the PC5 provisioning information + is returned. content: application/json: schema: $ref: '#/components/schemas/Pc5ProvisioningInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /provide_v2x_msg_distribution_server_info: + post: + tags: + - V2X_msg + summary: Request the information about available V2X Message Distribution Servers + that can be supported by the service consumer. + description: Request the information about available V2X Message Distribution + Servers that can be supported by the service consumer (e.g. a MEC application). + operationId: v2xMsg_distributionServerPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/V2xMsgDistributionServerInfo' + required: true + responses: + "200": + description: The response body shall contain the connection information + of the V2X Message Distribution Servers that the service consumer can + use for direct connection. + content: + application/json: + schema: + $ref: '#/components/schemas/V2xMsgDistributionServerInfo' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /provide_predicted_qos: post: tags: - - 'v2xi' - summary: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.' - description: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.' + - QoS + summary: Request the predicted QoS correspondent to potential routes of a vehicular + UE. + description: Request the predicted QoS correspondent to potential routes of + a vehicular UE. operationId: predicted_qosPOST requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/PredictedQos' + required: true responses: - '200': - description: 'The response body shall contain the predicted QoS corresponding to potential routes of a vehicular UE' + "200": + description: The response body shall contain the predicted QoS corresponding + to potential routes of a vehicular UE content: application/json: schema: $ref: '#/components/schemas/PredictedQos' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /publish_v2x_message: post: tags: - - 'v2xi' - summary: 'Used to publish a V2X message.' - description: 'Used to publish a V2X message.' + - V2X_msg + summary: Used to publish a V2X message. + description: Used to publish a V2X message. operationId: v2x_messagePOST requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/V2xMsgPublication' - example: - msgContent: 'Hello World' - msgEncodeFormat: 'base64' - msgType: 1 - stdOrganization: 'ETSI' + required: true responses: - '204': - $ref: '#/components/responses/204' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "204": + description: No Content + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /subscriptions: get: tags: - - 'v2xi' - summary: 'Request information about the subscriptions for this requestor.' - description: 'Request information about the subscriptions for this requestor.' + - subscription + summary: Request information about the subscriptions for this requestor. + description: Request information about the subscriptions for this requestor. operationId: subGET parameters: - - in: query - name: subscription_type - description: 'Query parameter to filter on a specific subscription type. Permitted values: prov_chg_uu_uni: provisioning information change for V2X communication over Uuunicast prov_chg_uu_mbms: provisioning information change for V2X communication over Uu MBMS prov_chg_uu_pc5: provisioning information change for V2X communication over PC5. v2x_msg: V2X interoperability message' - schema: - type: string - required: false + - name: subscription_type + in: query + description: "Query parameter to filter on a specific subscription type. Permitted\ + \ values: prov_chg_uu_uni: provisioning information change for V2X communication\ + \ over Uuunicast. prov_chg_uu_mbms: provisioning information change for\ + \ V2X communication over Uu MBMS. prov_chg_uu_pc5: provisioning information\ + \ change for V2X communication over PC5. v2x_msg: V2X interoperability message.\ + \ pred_qos: information on the predicted QoS" + required: false + style: form + explode: true + schema: + type: string responses: - '200': - description: 'A response body containing the list of links to requestor subscriptions is returned.' + "200": + description: A response body containing the list of links to requestor subscriptions + is returned. content: application/json: schema: $ref: '#/components/schemas/SubscriptionLinkList' - example: - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions' - subscription: - - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - subscriptionType: V2xMsgSubscription - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' post: tags: - - 'v2xi' + - subscription summary: ' create a new subscription to VIS notifications.' description: ' create a new subscription to VIS notifications.' operationId: subPOST requestBody: - required: true content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 1 - - 2 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 + $ref: '#/components/schemas/subscriptions_body' + required: true responses: - '201': - description: 'In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type.' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 1 - - 2 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '415': - $ref: '#/components/responses/415' - '422': - $ref: '#/components/responses/422' - '429': - $ref: '#/components/responses/429' - + "201": + description: "In the returned NotificationSubscription structure, the created\ + \ subscription is described using the appropriate data type." + content: + application/json: + schema: + $ref: '#/components/schemas/subscriptions_body' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "415": + description: "Unsupported Media Type : used to indicate that the server\ + \ or the client does not support the content type of the entity body." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "422": + description: "Unprocessable Entity : used to indicate that the server understands\ + \ the content type of the request entity and that the syntax of the request\ + \ entity is correct but that the server is unable to process the contained\ + \ instructions. This error condition can occur if an JSON request body\ + \ is syntactically correct but semantically incorrect, for example if\ + \ the target area for the request is considered too large. This error\ + \ condition can also occur if the capabilities required by the request\ + \ are not supported." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' callbacks: notification: '{$request.body#/callbackReference}': post: - summary: 'Callback POST used to send a notification' - description: 'A notification from VIS.' + summary: Callback POST used to send a notification + description: A notification from VIS. operationId: notificationPOST requestBody: description: Subscription notification - required: true content: application/json: schema: oneOf: - - $ref: '#/components/schemas/ProvChgUuUniNotification' - - $ref: '#/components/schemas/ProvChgUuMbmsNotification' - - $ref: '#/components/schemas/ProvChgPc5Notification' - - $ref: '#/components/schemas/V2xMsgNotification' + - $ref: '#/components/schemas/ProvChgUuUniNotification' + - $ref: '#/components/schemas/ProvChgUuMbmsNotification' + - $ref: '#/components/schemas/ProvChgPc5Notification' + - $ref: '#/components/schemas/V2xMsgNotification' + required: true responses: - '204': - $ref: '#/components/responses/204' - + "204": + description: No Content /subscriptions/{subscriptionId}: - parameters: - - in: path - name: subscriptionId - description: 'Refers to created subscription, where the VIS API allocates a unique resource name for this subscription' - schema: - type: string - required: true - get: tags: - - 'v2xi' - summary: 'Retrieve information about this subscription.' - description: 'Retrieve information about this subscription.' + - subscription + summary: Retrieve information about this subscription. + description: Retrieve information about this subscription. operationId: individualSubscriptionGET - + parameters: + - name: subscriptionId + in: path + description: "Refers to created subscription, where the VIS API allocates\ + \ a unique resource name for this subscription" + required: true + style: simple + explode: false + schema: + type: string responses: - '200': - description: 'A response body containing the data type describing the specific RNI event subscription is returned' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 1 - - 2 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "200": + description: A response body containing the data type describing the specific + RNI event subscription is returned + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' put: tags: - - 'v2xi' - summary: 'Used to update the existing subscription.' - description: 'Used to update the existing subscription.' + - subscription + summary: Used to update the existing subscription. + description: Used to update the existing subscription. operationId: individualSubscriptionPUT - requestBody: + parameters: + - name: subscriptionId + in: path + description: "Refers to created subscription, where the VIS API allocates\ + \ a unique resource name for this subscription" required: true + style: simple + explode: false + schema: + type: string + requestBody: content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 3 - - 4 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - responses: - '200': - description: 'A response body containing data type describing the updated subscription is returned' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 3 - - 4 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - - '403': - $ref: '#/components/responses/403' - - '404': - $ref: '#/components/responses/404' - - '406': - $ref: '#/components/responses/406' - - '412': - $ref: '#/components/responses/412' - - '422': - $ref: '#/components/responses/422' - - '429': - $ref: '#/components/responses/429' - delete: - tags: - - 'v2xi' - summary: 'Used to cancel the existing subscription.' - description: 'Used to cancel the existing subscription.' - operationId: individualSubscriptionDELETE + $ref: '#/components/schemas/subscriptions_subscriptionId_body' + required: true responses: - '204': - $ref: '#/components/responses/204' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '429': - $ref: '#/components/responses/429' - - # /notifitication_end_point_provided_by_client - #post: - -components: - schemas: - CellId: - properties: - cellId: - description: E-UTRAN Cell Identity as a bit string (size (28)). - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String - required: - - cellId - type: object - x-etsi-ref: 6.6.2 - Earfcn: - properties: - earfcn: - description: E-UTRA Absolute Radio Frequency Channel Number, range (0... 65535) - type: integer - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Integer + "200": + description: A response body containing data type describing the updated + subscription is returned + content: + application/json: + schema: + $ref: '#/components/schemas/subscriptions_subscriptionId_body' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts\ + \ when using PUT" + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "422": + description: "Unprocessable Entity : used to indicate that the server understands\ + \ the content type of the request entity and that the syntax of the request\ + \ entity is correct but that the server is unable to process the contained\ + \ instructions. This error condition can occur if an JSON request body\ + \ is syntactically correct but semantically incorrect, for example if\ + \ the target area for the request is considered too large. This error\ + \ condition can also occur if the capabilities required by the request\ + \ are not supported." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - subscription + summary: Used to cancel the existing subscription. + description: Used to cancel the existing subscription. + operationId: individualSubscriptionDELETE + parameters: + - name: subscriptionId + in: path + description: "Refers to created subscription, where the VIS API allocates\ + \ a unique resource name for this subscription" + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: No Content + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' +components: + schemas: + CellId: + required: + - cellId + type: object + properties: + cellId: + type: string + description: E-UTRAN Cell Identity as a bit string (size (28)). + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + example: + cellId: cellId + x-etsi-ref: 6.6.2 + Earfcn: required: - - earfcn + - earfcn type: object + properties: + earfcn: + type: integer + description: "E-UTRA Absolute Radio Frequency Channel Number, range (0...\ + \ 65535)" + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Integer + example: + earfcn: 1 x-etsi-ref: 6.6.3 Ecgi: + required: + - cellId + - plmn + type: object properties: cellId: - # description': The E-UTRAN Cell Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': CellId $ref: '#/components/schemas/CellId' plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' - required: - - plmn - - cellId - type: object + example: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.5.5 FddInfo: + required: + - dlEarfcn + - dlTransmissionBandwidth + - ulEarfcn + - ulTransmissionBandwidth + type: object properties: dlEarfcn: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Earfcn $ref: '#/components/schemas/Earfcn' dlTransmissionBandwidth: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TransmissionBandwidth $ref: '#/components/schemas/TransmissionBandwidth' ulEarfcn: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Earfcn $ref: '#/components/schemas/Earfcn' ulTransmissionBandwidth: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TransmissionBandwidth $ref: '#/components/schemas/TransmissionBandwidth' - required: - - ulEarfcn - - dlEarfcn - - ulTransmissionBandwidth - - dlTransmissionBandwidth - type: object + example: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null x-etsi-ref: 6.5.6 links: - description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. + required: + - self + type: object properties: self: - # description': Self-referring URI. The URI shall be unique within the VIS API as it acts as an ID for the subscription. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType $ref: '#/components/schemas/LinkType' - required: - - self - type: object + description: Hyperlink related to the resource. This shall be only included + in the HTTP responses and in HTTP PUT requests. x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) LinkType: + required: + - href + type: object properties: href: + type: string description: URI referring to a resource format: uri - type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uri - required: - - href - type: object + example: + href: http://example.com/aeiou x-etsi-ref: 6.5.13 LocationInfo: + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier of the serving cell. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' geoArea: $ref: '#/components/schemas/LocationInfo.geoArea' - type: object + example: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-notes: "NOTE:\tEither ecgi or geoArea shall be present, but not both." x-etsi-ref: 6.5.3 LocationInfo.geoArea: - description: Information of a geographical area. + required: + - latitude + - longitude + type: object properties: latitude: - description: 'Latitude (DATUM = WGS84) -90 to 90 in decimal degree format DDD.ddd' - format: float type: number - x-etsi-mec-cardinality: '1' + description: Latitude (DATUM = WGS84) -90 to 90 in decimal degree format + DDD.ddd + format: float + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Float longitude: - description: 'Longitude (DATUM = WGS84) -180 to 180 in decimal degree format DDD.ddd' - format: float type: number - x-etsi-mec-cardinality: '1' + description: Longitude (DATUM = WGS84) -180 to 180 in decimal degree format + DDD.ddd + format: float + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Float - required: - - latitude - - longitude - type: object + description: Information of a geographical area. + example: + latitude: 0.8008282 + longitude: 6.0274563 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) Pc5NeighbourCellInfo: + required: + - ecgi + - plmn + - siV2xConfig + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' siV2xConfig: - # description': V2X sidelink communication configuration, as defined in ETSI TS 136 331 [i.11]. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': SystemInformationBlockType21 (as defined in ETSI TS 136 331 [i.11]) $ref: '#/components/schemas/SystemInformationBlockType21' - required: - - plmn - - ecgi - - siV2xConfig - type: object + example: + plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.5.12 Pc5ProvisioningInfo: + required: + - proInfoPc5 + type: object properties: proInfoPc5: - type: array minItems: 1 + type: array items: $ref: '#/components/schemas/Pc5ProvisioningInfo.proInfoPc5' timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - proInfoPc5 - type: object + example: + timeStamp: + seconds: 7 + nanoSeconds: 2 + proInfoPc5: + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + dstLayer2Id: dstLayer2Id + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + dstLayer2Id: dstLayer2Id x-etsi-ref: 6.2.4 Pc5ProvisioningInfo.proInfoPc5: - description: The provisioning information per location as defined below. + required: + - dstLayer2Id + - locationInfo type: object properties: dstLayer2Id: - description: "For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS\_136\_321 [i.12].\nPLMN operators coordinate to make sure Destination Layer2 ID(s) for different V2X services are configured in a consistent manner." type: string - x-etsi-mec-cardinality: '1' + description: "For sidelink communication, the Destination Layer-2 ID is\ + \ set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS\_136\_\ + 321 [i.12].\nPLMN operators coordinate to make sure Destination Layer2\ + \ ID(s) for different V2X services are configured in a consistent manner." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5. - items: - $ref: '#/components/schemas/Pc5NeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over PC5. + items: + $ref: '#/components/schemas/Pc5NeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Pc5NeighbourCellInfo - required: - - locationInfo - - dstLayer2Id + description: The provisioning information per location as defined below. + example: + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + dstLayer2Id: dstLayer2Id x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) Plmn: + required: + - mcc + - mnc + type: object properties: mcc: - description: The Mobile Country Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Country Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String mnc: - description: The Mobile Network Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Network Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - mcc - - mnc - type: object + example: + mnc: mnc + mcc: mcc x-etsi-ref: 6.5.4 PredictedQos: + required: + - locationGranularity + - predictionTarget + - qos + type: object properties: locationGranularity: - description: Granularity of visited location. Measured in meters. type: string - x-etsi-mec-cardinality: '1' + description: Granularity of visited location. Measured in meters. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String + noticePeriod: + $ref: '#/components/schemas/TimeStamp' + predictionArea: + $ref: '#/components/schemas/PredictionArea' + predictionTarget: + type: string + description: "Indicates target of QoS prediction. Valid values:\n\n1.\t\ + SINGLE_UE_PREDICTION: \nThe predicted QoS is to be intended as journey-specific\ + \ for a requesting vehicular UE.\n\n2.\tE2E_APPLICATION_INSTANCE_PREDICTION:\n\ + The E2E user plane link between two V2X application instances, where one\ + \ instance relates to a single vehicular UE and the other instance to\ + \ an application instance within another network, i.e. either another\ + \ vehicular UE as in the V2N2V case, or an infrastructure element as in\ + \ the V2N2I case.\n\nShall only be included in the request.\n\n" + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum_inlined + qos: + $ref: '#/components/schemas/Qos' routes: - description: Information relating to the potential routes of a vehicular UE. - items: - $ref: '#/components/schemas/PredictedQos.routes' - minItems: 1 - required: - - routeInfo type: array - x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: Structure (inlined) + items: + $ref: '#/components/schemas/Routes' timeGranularity: - # description': Time granularity of visiting a location. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - locationGranularity - - routes - type: object - x-etsi-notes: "NOTE:\tThe data type of locationGranularity is a string which indicates the granularity of a visited location by means of latitudinal and longitudinal margins." - x-etsi-ref: 6.2.5 + example: + noticePeriod: + seconds: 7 + nanoSeconds: 2 + routes: + - routeInfo: + - location: null + time: null + - location: null + time: null + - routeInfo: + - location: null + time: null + - location: null + time: null + qos: + stream: + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + timeGranularity: null + locationGranularity: locationGranularity + predictionArea: + center: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + radius: radius + predictionTarget: SEE_DESCRIPTION + x-etsi-notes: "NOTE:\tThe data type of locationGranularity is a string which\ + \ indicates the granularity of a visited location by means of latitudinal\ + \ and longitudinal margins." + x-etsi-ref: 6.2.6 PredictedQos.routes: + minItems: 1 + type: object properties: routeInfo: - description: 'Information relating to a specific route. - - The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided.' - items: - $ref: '#/components/schemas/PredictedQos.routes.routeInfo' - required: - - location minItems: 2 + required: + - location type: array + description: |- + Information relating to a specific route. + The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided. + items: + $ref: '#/components/schemas/PredictedQos.routes.routeInfo' x-etsi-mec-cardinality: 2..N x-etsi-mec-origin-type: Structure (inlined) - type: object - minItems: 1 PredictedQos.routes.routeInfo: type: object properties: location: - # description': Vehicular UE location. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' rsrp: - description: - 'Reference Signal Received Power as defined in ETSI TS 136 214 [i.13]. - - Shall only be included in the response.' - format: uint8 type: integer + description: "Reference Signal Received Power as defined in ETSI TS 136\ + \ 214 [i.13].\nShall only be included in the response." + format: uint8 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint8 rsrq: - description: - 'Reference Signal Received Quality as defined in ETSI TS 136 214 [i.13]. - - Shall only be included in the response.' - format: uint8 type: integer + description: "Reference Signal Received Quality as defined in ETSI TS 136\ + \ 214 [i.13].\nShall only be included in the response." + format: uint8 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint8 time: - # description': Estimated time at the location. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' ProblemDetails: + type: object properties: detail: - description: A human-readable explanation specific to this occurrence of the problem type: string + description: A human-readable explanation specific to this occurrence of + the problem x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String instance: - description: A URI reference that identifies the specific occurrence of the problem - format: uri type: string + description: A URI reference that identifies the specific occurrence of + the problem + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI status: + type: integer description: The HTTP status code for this occurrence of the problem format: uint32 - type: integer x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 title: - description: A short, human-readable summary of the problem type type: string + description: "A short, human-readable summary of the problem type" x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String type: - description: A URI reference according to IETF RFC 3986 that identifies the problem type - format: uri type: string + description: A URI reference according to IETF RFC 3986 that identifies + the problem type + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI - type: object ProvChgPc5Notification: + required: + - locationInfo + - notificationType + type: object properties: dstLayer2Id: - description: For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12]. type: string + description: "For sidelink communication, the Destination Layer-2 ID is\ + \ set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321\ + \ [i.12]." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5. - items: - $ref: '#/components/schemas/Pc5NeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over PC5. + items: + $ref: '#/components/schemas/Pc5NeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Pc5NeighbourCellInfo notificationType: - description: Shall be set to "ProvChgPc5Notification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgPc5Notification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - notificationType - - locationInfo - type: object x-etsi-ref: 6.4.4 ProvChgPc5Subscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: $ref: '#/components/schemas/links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/ProvChgPc5Subscription.filterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "ProvChgPc5Subscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgPc5Subscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: 'NOTE: At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a.' + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE: At least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." x-etsi-ref: 6.3.4 ProvChgPc5Subscription.filterCriteria: - description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + required: + - dstLayer2Id + - locationInfo + type: object properties: dstLayer2Id: - description: For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12]. type: string - x-etsi-mec-cardinality: '1' + description: "For sidelink communication, the Destination Layer-2 ID is\ + \ set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321\ + \ [i.12]." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5. - items: - $ref: '#/components/schemas/Pc5NeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over PC5. + items: + $ref: '#/components/schemas/Pc5NeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Pc5NeighbourCellInfo - required: - - locationInfo - - dstLayer2Id - type: object - x-etsi-mec-cardinality: '1' + description: "List of filtering criteria for the subscription. Any filtering\ + \ criteria from below, which is included in the request, shall also be included\ + \ in the response." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) ProvChgUuMbmsNotification: + required: + - locationInfo + - notificationType + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS. - items: - $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu MBMS. + items: + $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuMbmsNeighbourCellInfo notificationType: - description: Shall be set to "ProvChgUuMbmsNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuMbmsNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' v2xServerUsd: - # description': User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': V2xServerUsd $ref: '#/components/schemas/V2xServerUsd' - required: - - notificationType - - locationInfo - type: object x-etsi-ref: 6.4.3 ProvChgUuMbmsSubscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: $ref: '#/components/schemas/links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/ProvChgUuMbmsSubscription.filterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "ProvChgUuMbmsSubscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuMbmsSubscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." x-etsi-ref: 6.3.3 ProvChgUuMbmsSubscription.filterCriteria: - description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + required: + - locationInfo + - v2xServerUsd + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS. - items: - $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu MBMS. + items: + $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuMbmsNeighbourCellInfo v2xServerUsd: - # description': User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xServerUsd $ref: '#/components/schemas/V2xServerUsd' - required: - - locationInfo - - v2xServerUsd - type: object - x-etsi-mec-cardinality: '1' + description: "List of filtering criteria for the subscription. Any filtering\ + \ criteria from below, which is included in the request, shall also be included\ + \ in the response." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) ProvChgUuUniNotification: + required: + - locationInfo + - notificationType + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast. - items: - $ref: '#/components/schemas/UuUniNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu unicast. + items: + $ref: '#/components/schemas/UuUniNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuUniNeighbourCellInfo notificationType: - description: Shall be set to "ProvChgUuUniNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuUniNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' v2xApplicationServer: - # description': V2X Application Server address (consisting of IP address and UDP port) for unicast. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': V2xApplicationServer $ref: '#/components/schemas/V2xApplicationServer' - required: - - notificationType - - locationInfo - type: object x-etsi-ref: 6.4.2 ProvChgUuUniSubscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: $ref: '#/components/schemas/links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/ProvChgUuUniSubscription.filterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "ProvChgUuUniSubscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuUniSubscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." x-etsi-ref: 6.3.2 ProvChgUuUniSubscription.filterCriteria: - description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + required: + - locationInfo + - v2xApplicationServer + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast. - items: - $ref: '#/components/schemas/UuUniNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu unicast. + items: + $ref: '#/components/schemas/UuUniNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuUniNeighbourCellInfo v2xApplicationServer: - # description': V2X Application Server address (consisting of IP address and UDP port) for unicast. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xApplicationServer $ref: '#/components/schemas/V2xApplicationServer' - required: - - locationInfo - - v2xApplicationServer - type: object - x-etsi-mec-cardinality: '1' + description: "List of filtering criteria for the subscription. Any filtering\ + \ criteria from below, which is included in the request, shall also be included\ + \ in the response." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) SubscriptionLinkList: - properties: - _links: - $ref: '#/components/schemas/SubscriptionLinkList.links' required: - - _links + - _links type: object - x-etsi-ref: 6.3.6 + properties: + _links: + $ref: '#/components/schemas/_links2' + example: + _links: + subscriptions: + - subscriptionType: subscriptionType + href: http://example.com/aeiou + - subscriptionType: subscriptionType + href: http://example.com/aeiou + self: + href: http://example.com/aeiou + x-etsi-ref: 6.3.7 SystemInformationBlockType21: type: object TddInfo: + required: + - earfcn + - subframeAssignment + - transmissionBandwidth + type: object properties: earfcn: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Earfcn $ref: '#/components/schemas/Earfcn' subframeAssignment: - description: Uplink-downlink subframe configuration information. type: string - x-etsi-mec-cardinality: '1' + description: Uplink-downlink subframe configuration information. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String transmissionBandwidth: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TransmissionBandwidth $ref: '#/components/schemas/TransmissionBandwidth' - required: - - earfcn - - transmissionBandwidth - - subframeAssignment - type: object + example: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null x-etsi-ref: 6.5.7 - SubscriptionLinkList.links: - description: List of hyperlinks related to the resource. - properties: - self: - # description': URI of this resource. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType - $ref: '#/components/schemas/LinkType' - subscriptions: - type: array - items: - $ref: '#/components/schemas/SubscriptionLinkList.links.subscriptions' + TestNotification: required: - - self + - _links + - notificationType type: object - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Structure (inlined) - SubscriptionLinkList.links.subscriptions: - description: The service consumer's subscriptions. - type: object - minItems: 0 - properties: - href: - description: The URI referring to the subscription. - format: uri - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: URI - subscriptionType: - description: Type of the subscription. The values are as defined in the "subscriptionType" attribute for each different V2X information event subscription data type. - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String - required: - - href - - subscriptionType - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Structure (inlined) - TestNotification: properties: _links: - description: 'Hyperlink related to the resource. ' - properties: - subscription: - # description': URI identifying the subscription for the test notification. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType - $ref: '#/components/schemas/LinkType' - required: - - subscription - type: object - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Structure (inlined) + $ref: '#/components/schemas/TestNotification__links' notificationType: - description: Shall be set to "TestNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "TestNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - notificationType - - _links - type: object x-etsi-ref: 6.4.6 TimeStamp: + required: + - nanoSeconds + - seconds + type: object properties: nanoSeconds: - description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. - format: uint32 type: integer - x-etsi-mec-cardinality: '1' + description: "The nanoseconds part of the time. Time is defined as Unix-time\ + \ since January 1, 1970, 00:00:00 UTC." + format: uint32 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 seconds: - description: The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC. - format: uint32 type: integer - x-etsi-mec-cardinality: '1' + description: "The seconds part of the time. Time is defined as Unixtime\ + \ since January 1, 1970, 00:00:00 UTC." + format: uint32 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 - required: - - seconds - - nanoSeconds - type: object + example: + seconds: 7 + nanoSeconds: 2 x-etsi-ref: 6.5.2 TransmissionBandwidth: + required: + - transmissionBandwidth + type: object properties: transmissionBandwidth: $ref: '#/components/schemas/TransmissionBandwidth.transmissionBandwidth' - required: - - transmissionBandwidth - type: object + example: + transmissionBandwidth: 5 x-etsi-ref: 6.6.4 TransmissionBandwidth.transmissionBandwidth: + type: integer description: | 'Numeric value corresponding to the transmission bandwidth expressed in units of resource blocks as follows: @@ -1231,518 +1633,1481 @@ components: 6 = bw100 (100 resource blocks)' enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - x-etsi-mec-cardinality: '1' + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Enum UuMbmsNeighbourCellInfo: + required: + - ecgi + - fddInfo + - mbmsServiceAreaIdentity + - pci + - plmn + - tddInfo + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' fddInfo: - # description': Information for FDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': FddInfo $ref: '#/components/schemas/FddInfo' mbmsServiceAreaIdentity: + minItems: 1 + type: array description: Supported MBMS Service Area Identities in the cell. items: type: string - minItems: 1 - type: array x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: String pci: - description: Physical Cell Identifier. type: integer - x-etsi-mec-cardinality: '1' + description: Physical Cell Identifier. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Integer plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' tddInfo: - # description': Information for TDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TddInfo $ref: '#/components/schemas/TddInfo' - required: - - plmn - - ecgi - - pci - - fddInfo - - tddInfo + example: + fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: - mbmsServiceAreaIdentity - type: object + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.5.11 UuMbmsProvisioningInfo: + required: + - proInfoUuMbms + type: object properties: proInfoUuMbms: - type: array minItems: 1 + type: array items: $ref: '#/components/schemas/UuMbmsProvisioningInfo.proInfoUuMbms' timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - proInfoUuMbms - type: object + example: + timeStamp: + seconds: 7 + nanoSeconds: 2 + proInfoUuMbms: + - v2xServerUsd: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier + - serviceAreaIdentifier + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - v2xServerUsd: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier + - serviceAreaIdentifier + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.2.3 UuMbmsProvisioningInfo.proInfoUuMbms: - description: The provisioning information per location as defined below. + required: + - locationInfo + - v2xServerUsd type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS. - items: - $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu MBMS. + items: + $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuMbmsNeighbourCellInfo v2xServerUsd: - # description': User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xServerUsd $ref: '#/components/schemas/V2xServerUsd' - required: - - locationInfo - - v2xServerUsd + description: The provisioning information per location as defined below. + example: + v2xServerUsd: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier + - serviceAreaIdentifier + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) UuUniNeighbourCellInfo: + required: + - ecgi + - fddInfo + - pci + - plmn + - tddInfo + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' fddInfo: - # description': Information for FDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': FddInfo $ref: '#/components/schemas/FddInfo' pci: - description: Physical Cell Identifier. type: integer - x-etsi-mec-cardinality: '1' + description: Physical Cell Identifier. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Integer plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' tddInfo: - # description': Information for TDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TddInfo $ref: '#/components/schemas/TddInfo' - required: - - plmn - - ecgi - - pci - - fddInfo - - tddInfo - type: object + example: + fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null x-etsi-ref: 6.5.9 UuUnicastProvisioningInfo: + required: + - proInfoUuUnicast + type: object properties: proInfoUuUnicast: - type: array minItems: 1 + type: array items: $ref: '#/components/schemas/UuUnicastProvisioningInfo.proInfoUuUnicast' timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - proInfoUuUnicast - type: object + example: + timeStamp: + seconds: 7 + nanoSeconds: 2 + proInfoUuUnicast: + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + v2xApplicationServer: + ipAddress: ipAddress + udpPort: udpPort + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + v2xApplicationServer: + ipAddress: ipAddress + udpPort: udpPort x-etsi-ref: 6.2.2 UuUnicastProvisioningInfo.proInfoUuUnicast: - description: The provisioning information per location as defined below. + required: + - locationInfo + - v2xApplicationServer type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast. - items: - $ref: '#/components/schemas/UuUniNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu unicast. + items: + $ref: '#/components/schemas/UuUniNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuUniNeighbourCellInfo v2xApplicationServer: - # description': V2X Application Server address (consisting of IP address and UDP port) for unicast. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xApplicationServer $ref: '#/components/schemas/V2xApplicationServer' - required: - - locationInfo - - v2xApplicationServer + description: The provisioning information per location as defined below. + example: + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + v2xApplicationServer: + ipAddress: ipAddress + udpPort: udpPort x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) V2xApplicationServer: + required: + - ipAddress + - udpPort + type: object properties: ipAddress: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String udpPort: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - ipAddress - - udpPort - type: object + example: + ipAddress: ipAddress + udpPort: udpPort x-etsi-ref: 6.5.8 V2xMsgNotification: + required: + - _links + - msgContent + - msgPropertiesValues + - msgRepresentationFormat + - notificationType + - timeStamp + type: object properties: _links: - $ref: '#/components/schemas/V2xMsgNotification.links' + $ref: '#/components/schemas/_links3' msgContent: - description: Published V2X message content. The format of the string is defined by the standardization organization indicated by the attribute stdOrganization. type: string - x-etsi-mec-cardinality: '1' + description: Published V2X message content. The format of the string is + defined by the standardization organization indicated by the attribute + stdOrganization of the msgPropertiesValues attribute. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgEncodeFormat: - description: The encode format of the V2X message, for example base64. + msgPropertiesValues: + $ref: '#/components/schemas/V2xMsgPropertiesValues' + msgRepresentationFormat: type: string - x-etsi-mec-cardinality: '1' + description: "The representation format of the binary V2X message, for example\ + \ base64 or hexadecimal representation." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgType: - $ref: '#/components/schemas/msgType' notificationType: - description: Shall be set to "V2xMsgNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "V2xMsgNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - stdOrganization: - description: "Standardization organization which defines the published V2X message type: \nETSI: European Telecommunications Standards Institute.\nSee note 1." - enum: - - ETSI - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Enum timeStamp: - # description': Date and time of the notification generation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - notificationType - - timeStamp - - stdOrganization - - msgType - - msgEncodeFormat - - msgContent - - _links - type: object - x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." x-etsi-ref: 6.4.5 V2xMsgNotification.links: - description: links to resources related to this notification. + required: + - subscription + type: object properties: subscription: - # description': A link to the related subscription. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType $ref: '#/components/schemas/LinkType' - required: - - subscription - type: object - x-etsi-mec-cardinality: '1' + description: links to resources related to this notification. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) V2xMsgPublication: + required: + - msgContent + - msgPropertiesValues + - msgRepresentationFormat + type: object properties: msgContent: - description: Published V2X message content. Its format is defined by the standardization organization indicated by the attribute stdOrganization. type: string - x-etsi-mec-cardinality: '1' + description: Published V2X message content. Its format is defined by the + standardization organization indicated by the attribute stdOrganization + of the msgPropertiesValues attribute. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgEncodeFormat: - description: The encode format of the V2X message, for example base64. + msgPropertiesValues: + $ref: '#/components/schemas/V2xMsgPropertiesValues' + msgRepresentationFormat: type: string - x-etsi-mec-cardinality: '1' + description: "The representation format of the binary V2X message, for example\ + \ base64 or hexadecimal representation." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgType: - $ref: '#/components/schemas/msgType' - stdOrganization: - description: "Standardization organization which defines the published V2X message type:\nETSI: European Telecommunications Standards Institute. \nSee note 1." - enum: - - ETSI - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Enum - required: - - stdOrganization - - msgType - - msgEncodeFormat - - msgContent - type: object - x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." - x-etsi-ref: 6.2.6 + x-etsi-ref: 6.2.7 msgType: - description: | - Published V2X message type. Its value is defined by the standardization organization indicated by the attribute stdOrganization. See note 2. - − denm(1): Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3, - − cam(2): Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2, - − poi(3): Point of Interest message as specified in ETSI TS 101 556-1, - − spatem(4): Signal Phase And Timing (SPAT) message as specified in SAE J2735 and in ETSI TS 103 301, - − mapem(5): MAP message as specified in SAE J2735 and in ETSI TS 103 301, - − ivim(6): In Vehicle Information (IVI) message as defined in ISO TS 19321, - − ev-rsr(7): Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3, - − tistpgtransaction(8): messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2, - − srem(9): Traffic light Signal Request Message as specified in ETSI TS 103 301, - − ssem(10): Traffic Light Signal Request Status Message as specified in ETSI TS 103 301. - − evcsn(11): Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1, - − saem(12): Services Announcement Extended Message as specified in ETSI TS 102 890-1, - − rtcmem(13): Radio Technical Commission for Maritime Services (RTCM) Message as specified in ETSI TS 103 301, - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 type: integer - x-etsi-mec-cardinality: '1' + description: "Published V2X message type. Its value is defined by the standardization\ + \ organization indicated by the attribute stdOrganization. See note 2.\n−\ + \ denm(1): Decentralized Environmental Notification Message (DENM) as specified\ + \ in ETSI EN 302 637-3,\n− cam(2): Cooperative Awareness Message (CAM) as\ + \ specified in ETSI EN 302 637-2,\n− poi(3): Point of Interest message as\ + \ specified in ETSI TS 101 556-1,\n− spatem(4): Signal Phase And Timing (SPAT)\ + \ message as specified in SAE J2735 and in ETSI TS 103 301,\n− mapem(5): MAP\ + \ message as specified in SAE J2735 and in ETSI TS 103 301,\n− ivim(6): In\ + \ Vehicle Information (IVI) message as defined in ISO TS 19321,\n− ev-rsr(7):\ + \ Electric vehicle recharging spot reservation message, as defined in ETSI\ + \ TS 101 556-3,\n− tistpgtransaction(8): messages for Tyre Information System\ + \ (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI\ + \ TS 101 556-2,\n− srem(9): Traffic light Signal Request Message as specified\ + \ in ETSI TS 103 301,\n− ssem(10): Traffic Light Signal Request Status Message\ + \ as specified in ETSI TS 103 301.\n− evcsn(11): Electrical Vehicle Charging\ + \ Spot Notification message as specified in ETSI TS 101 556-1,\n− saem(12):\ + \ Services Announcement Extended Message as specified in ETSI TS 102 890-1,\n\ + − rtcmem(13): Radio Technical Commission for Maritime Services (RTCM) Message\ + \ as specified in ETSI TS 103 301,\n" + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Enum V2xMsgSubscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: - $ref: '#/components/schemas/links' + $ref: '#/components/schemas/_links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note 1. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: - $ref: '#/components/schemas/V2xMsgSubscription.filterCriteria' + $ref: '#/components/schemas/V2xMsgFilterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC 009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS MEC 009 [9], clause 6.12a. \nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "V2xMsgSubscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "V2xMsgSubscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note 1. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a.\nNOTE 2:\tOther standardization organizations could be added as needed.\nNOTE 3:\tThe V2X message types of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [9], clause 6.12a." x-etsi-ref: 6.3.5 V2xMsgSubscription.filterCriteria: - description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + required: + - stdOrganization + type: object properties: msgType: - description: Subscribed V2X message type. Its value is defined by the standardization organization indicated by the attribute stdOrganization. See note 3. - items: - type: integer minItems: 0 type: array + description: Subscribed V2X message type. Its value is defined by the standardization + organization indicated by the attribute stdOrganization. See note 3. + items: + type: string x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Enum stdOrganization: - description: "Standardization organization which defines the subscribed V2X message type: \nETSI: European Telecommunications Standards Institute. \nSee note 2." - enum: - - ETSI type: string - x-etsi-mec-cardinality: '1' + description: "Standardization organization which defines the subscribed\ + \ V2X message type: \nETSI: European Telecommunications Standards Institute.\ + \ \nSee note 2." + enum: + - ETSI + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Enum - required: - - stdOrganization - type: object - x-etsi-mec-cardinality: '1' + description: "List of filtering criteria for the subscription. Any filtering\ + \ criteria from below, which is included in the request, shall also be included\ + \ in the response." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) V2xServerUsd: + required: + - sdpInfo + - serviceAreaIdentifier + - tmgi + type: object properties: sdpInfo: $ref: '#/components/schemas/V2xServerUsd.sdpInfo' serviceAreaIdentifier: - description: A list of service area identifier for the applicable MBMS broadcast area. - items: - type: string minItems: 1 type: array + description: A list of service area identifier for the applicable MBMS broadcast + area. + items: + type: string x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: String tmgi: $ref: '#/components/schemas/V2xServerUsd.tmgi' - required: - - tmgi + example: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier - serviceAreaIdentifier - - sdpInfo - type: object x-etsi-ref: 6.5.10 V2xServerUsd.sdpInfo: - description: SDP with IP multicast address and port number used for V2X communication via MBMS. + required: + - ipMulticastAddress + - portNumber + type: object properties: ipMulticastAddress: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String portNumber: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - ipMulticastAddress - - portNumber - type: object - x-etsi-mec-cardinality: '1' + description: SDP with IP multicast address and port number used for V2X communication + via MBMS. + example: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) V2xServerUsd.tmgi: - description: Temporary Mobile Group Identity (TMGI), which is used within MBMS to uniquely identify Multicast and Broadcast bearer services. + required: + - mbmsServiceId + - mcc + - mnc + type: object properties: mbmsServiceId: - description: MBMS Service ID consisting of three octets. type: string - x-etsi-mec-cardinality: '1' + description: MBMS Service ID consisting of three octets. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String mcc: - description: The Mobile Country Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Country Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String mnc: - description: The Mobile Network Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Network Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - mbmsServiceId - - mcc - - mnc - type: object - x-etsi-mec-cardinality: '' + description: "Temporary Mobile Group Identity (TMGI), which is used within MBMS\ + \ to uniquely identify Multicast and Broadcast bearer services." + example: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + x-etsi-mec-cardinality: "" x-etsi-mec-origin-type: Structure (inlined) WebsockNotifConfig: + type: object properties: requestWebsocketUri: - description: Set to TRUE by the service consumer to indicate that Websocket delivery is requested. type: boolean + description: Set to TRUE by the service consumer to indicate that Websocket + delivery is requested. x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean websocketUri: - description: Set by VIS to indicate to the service consumer the Websocket URI to be used for delivering notifications. + type: string + description: Set by VIS to indicate to the service consumer the Websocket + URI to be used for delivering notifications. format: uri + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + x-etsi-ref: 6.5.18 + V2xMsgDistributionServerInfo: + required: + - v2xMsgDistributionServer + type: object + properties: + locationInfo: + minItems: 0 + type: array + description: Location information to identify a particular geographical + area of interest to the service consumer for receiving V2X messages. + items: + $ref: '#/components/schemas/LocationInfo' + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: LocationInfo + v2xMsgDistributionServer: + minItems: 1 + type: array + description: Describes the information of the V2X Message Distribution Servers + supported by the service consumer for direct communication. + items: + $ref: '#/components/schemas/V2xMsgDistributionServer' + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: V2xMsgDistributionServer + example: + locationInfo: + - geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + v2xMsgDistributionServer: + - infoConnection: + port_number: 0 + ipAddress: ipAddress + infoProtocol: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + - infoConnection: + port_number: 0 + ipAddress: ipAddress + infoProtocol: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + x-etsi-ref: 6.2.5 + PredQosSubscription: + required: + - filterCriteria + - subscriptionType + type: object + properties: + _links: + $ref: '#/components/schemas/_links1' + callbackReference: type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri + expiryDeadline: + $ref: '#/components/schemas/TimeStamp' + filterCriteria: + $ref: '#/components/schemas/QosPredFilterCriteria' + requestTestNotification: + type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS MEC 009 [9], clause 6.12a. \nDefault: FALSE." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + type: string + description: Shall be set to "PredQosSubscription". + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [9], clause 6.12a." + x-etsi-ref: 6.3.6 + V2xMsgPropertiesValues: + required: + - locationInfo + - msgProtocolVersion + - msgType + - stdOrganization type: object + properties: + locationInfo: + $ref: '#/components/schemas/LocationInfo' + msgProtocolVersion: + type: integer + description: "Protocol version of the V2X message (0..255),\nSee note 3." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Integer + msgType: + type: string + description: Published V2X message type. Its value is defined by the standardization + organization indicated by the attribute stdOrganization. See note 2. + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum + stdOrganization: + type: string + description: "Standardization organization which defines the published V2X\ + \ message type: \nETSI: European Telecommunications Standards Institute.\ + \ \nSee note 1." + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum + x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as\ + \ needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified\ + \ in ETSI TS 102 894-2 [6], clause A.114.\nNOTE 3:\tThe message protocol version\ + \ of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." x-etsi-ref: 6.5.14 + V2xMsgFilterCriteria: + required: + - stdOrganization + type: object + properties: + locationInfo: + minItems: 0 + type: array + description: Location information to identify a cell of a base station or + a particular geographical area to which the V2X message can be associated. + items: + $ref: '#/components/schemas/LocationInfo' + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: LocationInfo + msgProtocolVersion: + minItems: 0 + type: array + description: "Protocol version of the V2X message (0..255),\nSee note 3." + items: + type: integer + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Integer + msgType: + minItems: 0 + type: array + description: Published V2X message type. Its value is defined by the standardization + organization indicated by the attribute stdOrganization. See note 2. + items: + type: string + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Enum + stdOrganization: + type: string + description: "Standardization organization which defines the published V2X\ + \ message type: \nETSI: European Telecommunications Standards Institute.\ + \ \nSee note 1." + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum + x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as\ + \ needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified\ + \ in ETSI TS 102 894-2 [6], clause A.114.\nNOTE 3:\tThe message protocol version\ + \ of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." + x-etsi-ref: 6.5.15 + V2xMsgDistributionServer: + required: + - infoProtocol + type: object + properties: + infoConnection: + $ref: '#/components/schemas/InfoConnection' + infoProtocol: + $ref: '#/components/schemas/InfoProtocol' + example: + infoConnection: + port_number: 0 + ipAddress: ipAddress + infoProtocol: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + x-etsi-notes: "NOTE:\tOther application layer protocols (and versions thereof)\ + \ may be added as needed." + x-etsi-ref: 6.5.16 + InfoConnection: + required: + - ipAddress + - port_number + type: object + properties: + ipAddress: + type: string + description: IP address of the V2X Message Distribution Server. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + port_number: + type: integer + description: Port number of the V2X Message Distribution Server. + x-etsi-mec-cardinality': "1" + x-etsi-mec-origin-type': Integer (0..65535) + description: Connection information of the V2X Message Distribution Server the + service consumer can use for direct connection. Shall only be included in + the response. + example: + port_number: 0 + ipAddress: ipAddress + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + InfoProtocol: + required: + - msgProtocol + - protImplementation + type: object + properties: + msgProtocol: + minItems: 1 + type: array + description: "Numerical value corresponding to the application layer protocol\ + \ supported by the service consumer. For the msgProtocol, the following\ + \ values are currently defined (see note): 0 = MQTT v3.0.0 1 = MQTT v3.1.1\ + \ 2 = MQTT v5 3 = MQTT-SN 4 = AMQP 1.0" + items: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Enum + protImplementation: + type: string + description: "Implementation specifics of application layer protocol, e.g.\_\ + programming language." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: Specifics of the application layer protocol of V2X Message Distribution + Server. + example: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + QosPredFilterCriteria: + type: object + properties: + streamId: + type: string + description: "The predicted QoS at the related time and vehicular UE location\ + \ is provided for a specific data stream. In case of 3GPP network, this\ + \ is mapped to a QoS flow. Stream needs to also contain the stream ID\ + \ which, in case of the 3GPP network, can be mapped on to the 5QI or QCI.\n\ + See note." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + x-etsi-notes: "NOTE:\tOther identifiers could be added as needed." + x-etsi-ref: 6.5.17 + PredictionArea: + required: + - center + - radius + type: object + properties: + center: + $ref: '#/components/schemas/LocationInfo' + radius: + type: string + description: Radius of geographical area including the two ends of the user + plane link between two V2X application instances. Measured in meters. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: |- + Geographical area including the two ends of the user plane link between two V2X application instances. + It shall only be present when "predictionTarget" = "E2E_APPLICATION_INSTANCE_PREDICTION". + example: + center: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + radius: radius + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + Qos: + required: + - stream + type: object + properties: + stream: + type: array + items: + $ref: '#/components/schemas/Stream' + description: Predicted QoS at the related time and vehicular UE location. Shall + only be included in the response. + example: + stream: + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + Stream: + minItems: 1 + required: + - streamId + - qosKpi + type: object + properties: + streamId: + type: string + description: "The identifier of a specific data stream. In case of 3GPP \ + \ network, this is mapped to a QoS flow" + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + qosKpi: + type: array + items: + $ref: '#/components/schemas/QosKpi' + description: "Predicted QoS at the related time and vehicular UE location for\ + \ the specific data stream. In case of 3GPP network, this is mapped to a QoS\ + \ flow. Stream needs to also contain the stream ID that, in case of the 3GPP\ + \ network, can be mapped on to the 5QI or QCI." + example: + qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Structure (inlined) + QosKpi: + minItems: 1 + required: + - kpiName + - kpiValue + type: object + properties: + confidence: + type: string + description: "Confidence of the prediction, as returned by the relevant\ + \ domain PF. The value and the measurement of the confidence depends on\ + \ the SLA. Shall only be included in the response." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + kpiName: + type: string + description: "The name of the KPI (e.g. latency, UL bitrate, etc). It can\ + \ be included in the request and in the response." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + kpiValue: + type: string + description: "Information on the predicted value for the specific QoS KPI.\ + \ It can be in different forms, such as upper bound and lower bound, CDF,\ + \ actual value, etc. Shall only be included in the response." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: This structure contains the prediction for a specific QoS KPI related + to a given data stream. + example: + kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Structure (inlined) + Routes: + minItems: 0 + required: + - routeInfo + type: object + properties: + routeInfo: + type: array + items: + $ref: '#/components/schemas/RouteInfo' + description: Information relating to the potential routes of a vehicular UE. + Shall only be present when "predictionTarget" = "SINGLE_UE_PREDICTION". + example: + routeInfo: + - location: null + time: null + - location: null + time: null + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + RouteInfo: + minItems: 1 + required: + - location + type: object + properties: + location: + $ref: '#/components/schemas/LocationInfo' + time: + $ref: '#/components/schemas/TimeStamp' + description: |- + Information relating to a specific route. + The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided. + example: + location: null + time: null + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Structure (inlined) + _links: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + description: Hyperlink related to the resource. This shall be only included + in the HTTP responses and in HTTP PUT requests. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + _links1: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + description: Hyperlink related to the resource. This shall be only included + in the HTTP responses and in HTTP PUT requests. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + _links2: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + subscriptions: + type: array + items: + $ref: '#/components/schemas/Subscriptions' + description: List of hyperlinks related to the resource. + example: + subscriptions: + - subscriptionType: subscriptionType + href: http://example.com/aeiou + - subscriptionType: subscriptionType + href: http://example.com/aeiou + self: + href: http://example.com/aeiou + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + _links3: + required: + - subscription + type: object + properties: + subscription: + $ref: '#/components/schemas/LinkType' + description: Links to resources related to this notification. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + Subscriptions: + minItems: 0 + required: + - href + - subscriptionType + type: object + properties: + href: + type: string + description: The URI referring to the subscription. + format: uri + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Uri + subscriptionType: + type: string + description: Type of the subscription. The values are as defined in the + "subscriptionType" attribute for each different V2X information event + subscription data type. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: The service consumer's subscriptions. + example: + subscriptionType: subscriptionType + href: http://example.com/aeiou + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + subscriptions_body: + oneOf: + - $ref: '#/components/schemas/ProvChgUuUniSubscription' + - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' + - $ref: '#/components/schemas/ProvChgPc5Subscription' + - $ref: '#/components/schemas/V2xMsgSubscription' + inline_response_200: + oneOf: + - $ref: '#/components/schemas/ProvChgUuUniSubscription' + - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' + - $ref: '#/components/schemas/ProvChgPc5Subscription' + - $ref: '#/components/schemas/V2xMsgSubscription' + - $ref: '#/components/schemas/PredQosSubscription' + subscriptions_subscriptionId_body: + oneOf: + - $ref: '#/components/schemas/ProvChgUuUniSubscription' + - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' + - $ref: '#/components/schemas/ProvChgPc5Subscription' + - $ref: '#/components/schemas/V2xMsgSubscription' + - $ref: '#/components/schemas/PredQosSubscription' + TestNotification__links: + required: + - subscription + type: object + properties: + subscription: + $ref: '#/components/schemas/LinkType' + description: 'Hyperlink related to the resource. ' + ExpiryNotification: + properties: + _links: + description: Hyperlink related to the resource. + properties: + subscription: + $ref: '#/components/schemas/LinkType' + required: + - subscription + type: object + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Structure (inlined) + expiryDeadline: + $ref: '#/components/schemas/TimeStamp' + notificationType: + description: Shall be set to "ExpiryNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - notificationType + - _links + - expiryDeadline + type: object + x-etsi-ref: 6.4.4 responses: - '204': + "204": description: No Content - '206': + "206": description: Partial content - '400': - description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '401': - description: 'Unauthorized : used when the client did not submit credentials.' + "401": + description: "Unauthorized : used when the client did not submit credentials." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '403': - description: 'Forbidden : operation is not allowed given the current status of the resource.' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '404': - description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' + "404": + description: "Not Found : used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '406': - description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '409': - description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' + "409": + description: "Conflict : The operation cannot be executed currently, due to\ + \ a conflict with the state of the resource" content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '412': - description: 'Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT' + "412": + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts when\ + \ using PUT" content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '415': - description: 'Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.' + "415": + description: "Unsupported Media Type : used to indicate that the server or\ + \ the client does not support the content type of the entity body." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '422': - description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' + "422": + description: "Unprocessable Entity : used to indicate that the server understands\ + \ the content type of the request entity and that the syntax of the request\ + \ entity is correct but that the server is unable to process the contained\ + \ instructions. This error condition can occur if an JSON request body is\ + \ syntactically correct but semantically incorrect, for example if the target\ + \ area for the request is considered too large. This error condition can also\ + \ occur if the capabilities required by the request are not supported." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '429': - description: 'Too Many Requests : used when a rate limiter has triggered.' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." content: application/json: schema: diff --git a/config/api/wais-api.yaml b/config/api/wais-api.yaml index 6414ea387b92acb2bcedc5632f68037d7e3c32b7..630ca695accb74ecad76a3d304b781e41e0436fd 100644 --- a/config/api/wais-api.yaml +++ b/config/api/wais-api.yaml @@ -3,18 +3,18 @@ info: contact: url: 'https://forge.etsi.org/rep/mec/gs028-wai-api' title: ETSI GS MEC 028 - WLAN Access Information API - version: 2.2.1 + version: 2.3.1 description: 'The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI -

**Note**
MEC Sandbox supports all WAI API endpoints and a limited set of subscription types; complete details on the WAI API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf). -

Supported subscriptions types: -

- AssocStaSubscription' +

**Note**
MEC Sandbox supports all WAI API endpoints and a limited set of subscription types; complete details on the WAI API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.03.01_60/gs_mec028v020301p.pdf). +

Supported subscriptions types: +

- AssocStaSubscription' license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' externalDocs: - description: ETSI MEC028 V2.2.1 WLAN Information API + description: ETSI MEC028 V2.3.1 WLAN Information API url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf + https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.03.01_60/gs_mec028v020301p.pdf servers: - url: 'https://localhost/sandboxname/wai/v2' tags: @@ -146,6 +146,9 @@ paths: example: subscriptionType: AssocStaSubscription callbackReference: 'http://meAppClient.example.com/wai/v2/notifications/1' + expiryDeadline: + seconds: 1977836800 + nanoSeconds: 0 apId: bssid: 005C0A0A0A0A notificationEvent: @@ -211,7 +214,7 @@ paths: responses: '204': $ref: '#/components/responses/204' - '/subscriptions/{subscriptionId}': + /subscriptions/{subscriptionId}: get: tags: - wai @@ -400,6 +403,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': @@ -418,7 +424,7 @@ paths: $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' - '/measurements/{measurementConfigId}': + /measurements/{measurementConfigId}: get: tags: - unsupported @@ -442,6 +448,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': @@ -477,6 +486,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} parameters: @@ -494,6 +506,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': @@ -844,7 +859,7 @@ components: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. properties: - self: + self: $ref: '#/components/schemas/LinkType' required: - self @@ -854,6 +869,8 @@ components: apId: $ref: '#/components/schemas/ApIdentity' callbackReference: + description: >- + URI exposed by the client on which to receive notifications type: string expiryDeadline: $ref: '#/components/schemas/TimeStamp' @@ -899,9 +916,8 @@ components: x-etsi-mec-origin-type: Uint8 requestTestNotification: description: >- - Set to TRUE by the service consumer to request a test notification - on the callbackReference URI to determine if it is reachable by the - WAIS for notifications. + Set to TRUE by the service consumer to request a test notification via HTTP + on the callbackReference URI. type: boolean x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean @@ -921,7 +937,7 @@ components: BeaconReport: properties: antennaId: - description: "The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in section\_9.4.2.40 of IEEE 802.11-2016 [8]." + description: "The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in clause\_9.4.2.40 of IEEE 802.11-2016 [8]." format: uint8 type: integer x-etsi-mec-cardinality: 0..1 @@ -966,7 +982,7 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 rcpi: - description: "RCPI indicates the received channel power of the Beacon, Measurement Pilot, or Probe Response frame, which is a logarithmic function of the received signal power, as defined in section\_9.4.2.38 of IEEE 802.11-2016 [8]." + description: "RCPI indicates the received channel power of the Beacon, Measurement Pilot, or Probe Response frame, which is a logarithmic function of the received signal power, as defined in clause\_9.4.2.38 of IEEE 802.11-2016 [8]." format: uint8 type: integer x-etsi-mec-cardinality: 0..1 @@ -974,7 +990,7 @@ components: reportedFrameInfo: $ref: '#/components/schemas/ReportedBeaconFrameInfo' rsni: - description: "RSNI indicates the received signal-to-noise indication for the Beacon, Measurement Pilot, or Probe Response frame, as described in section\_9.4.2.41 of IEEE 802.11-2016 [8]." + description: "RSNI indicates the received signal-to-noise indication for the Beacon, Measurement Pilot, or Probe Response frame, as described in clause\_9.4.2.41 of IEEE 802.11-2016 [8]." format: uint8 type: integer x-etsi-mec-cardinality: 0..1 @@ -1035,7 +1051,7 @@ components: x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: Uint8 threshold: - description: "The threshold subfield contains either the threshold value or the offset value to be used for conditional reporting.\n\nFor reportingCondition subfield with values 1 and 2, the threshold value is a logarithmic function of the received signal power, as defined in section\_9.4.2.38 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 3 and 4, the threshold value is a logarithmic function of the signal-to-noise ratio, as described in section\_9.4.2.41 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 5 to 10, the offset value is an 8-bit 2s complement integer in units of 0,5 dBm. The indicated reporting condition applies individually to each measured Beacon, Measurement Pilot, or Probe Response frame." + description: "The threshold subfield contains either the threshold value or the offset value to be used for conditional reporting.\n\nFor reportingCondition subfield with values 1 and 2, the threshold value is a logarithmic function of the received signal power, as defined in clause\_9.4.2.38 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 3 and 4, the threshold value is a logarithmic function of the signal-to-noise ratio, as described in clause\_9.4.2.41 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 5 to 10, the offset value is an 8-bit 2s complement integer in units of 0,5 dBm. The indicated reporting condition applies individually to each measured Beacon, Measurement Pilot, or Probe Response frame." format: uint8 type: integer x-etsi-mec-cardinality: '1' @@ -1998,6 +2014,7 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) callbackReference: + description: URI exposed by the client on which to receive notifications. type: string expiryDeadline: $ref: '#/components/schemas/TimeStamp' @@ -2013,8 +2030,7 @@ components: requestTestNotification: description: >- Set to TRUE by the service consumer to request a test notification - on the callbackReference URI to determine if it is reachable by the - WAIS for notifications. + via HTTP on the callbackReference URI. type: boolean x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean @@ -2438,6 +2454,8 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) callbackReference: + description: >- + URI exposed by the client on which to receive notifications type: string expiryDeadline: $ref: '#/components/schemas/TimeStamp' @@ -2510,9 +2528,8 @@ components: x-etsi-mec-origin-type: Uint8 requestTestNotification: description: >- - Set to TRUE by the service consumer to request a test notification - on the callbackReference URI to determine if it is reachable by the - WAIS for notifications. + Set to TRUE by the service consumer to request a test notification via HTTP + on the callbackReference URI. type: boolean x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean diff --git a/config/grid_map/grid_map.kml b/config/grid_map/grid_map.kml new file mode 100644 index 0000000000000000000000000000000000000000..c79c2e36116f7d486c1c2e315985b4e59d7fbe98 --- /dev/null +++ b/config/grid_map/grid_map.kml @@ -0,0 +1,3113 @@ + + + + KML Samples + 1 + MEC Sandbox grid map for V2X Predicted QoS + + + + + + + + + + + + normal + #__managed_style_164790AC5433A5EC62A0 + + + highlight + #__managed_style_2B6DB6F09833A5EC62A0 + + + + + + + + normal + #__managed_style_15FE54E51433A627B563 + + + highlight + #__managed_style_2FF57D309E33A627B563 + + + + + + + + + + + normal + #__managed_style_1BFC23CFD633A61BD679 + + + highlight + #__managed_style_23A16BBBC233A61BD679 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950392685,43.72791692204446,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412174768310321,43.72811929230551,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412082168640928,43.72832328456246,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412258292114533,43.72868578535503,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412667104878034,43.72951071398454,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41293395269218,43.73001857084243,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.413909436236601,43.7303324779033,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414845099169913,43.73085772186122,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415686272521507,43.73140827154441,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417035715607321,43.73150376752979,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41811951280293,43.73125813101358,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418496582896259,43.73105428551223,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417434617206712,43.7303285305292,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41761612246052,43.72994506278113,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418475552736686,43.73002455487853,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418583628695767,43.72901665897288,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419206675548777,43.72905121172964,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419276724805592,43.72859252750181,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421163717704948,43.72867443423857,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421329630272973,43.72830199194946,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421491550303836,43.72803665703435,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421782477046712,43.7277717542315,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422214271916112,43.72747620627226,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422504565367829,43.72723219488084,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420680151271053,43.7261019149033,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41861879465773,43.72467460835772,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417217361608561,43.72534442567208,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415396051104368,43.72626835861559,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.413504901522874,43.72721718804736,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950392685,43.72791692204446,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950000019,43.72791691999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.411804027225728,43.72816131012375,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.410720479921626,43.72869765990779,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.409766648242966,43.72922566662531,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.408977429067094,43.72955314039889,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.409459702810654,43.73009170062428,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41079280207825,43.73123211336428,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.411498167531976,43.73156030213696,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.411981155210787,43.73165154471924,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412869529259951,43.73174631793645,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.413103672228885,43.73285905697139,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412628412999993,43.73348784000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412631065999973,43.73365316000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412836050000027,43.73390495000003,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412263138000026,43.73433529999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41232007199998,43.73447780000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41272860800001,43.73490302,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414536576000001,43.73596065999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414790898000021,43.73593182999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415021658000009,43.73579005000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415204773000013,43.73563441,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415460622999999,43.73559658999999,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415375119999998,43.73542449999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415019677000005,43.73510931,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415505957999993,43.73499287,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415866061000012,43.73534442999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416066182000023,43.73524041000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416378377999995,43.73509695000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416259374182514,43.73439937025293,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417151421038497,43.73438386838809,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417564606186713,43.73358803210659,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416856147336349,43.73251603862495,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415686273000004,43.73140827000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414845098999989,43.73085772000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41390943600003,43.73033248,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412933952999974,43.73001857000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412667104999997,43.72951071,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412258291999985,43.72868578999997,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412082169,43.72832327999999,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412174767999988,43.72811928999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950000019,43.72791691999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417564606186713,43.73358803210659,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417151421038497,43.73438386838809,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416259374182514,43.73439937025293,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416378377999995,43.73509695000001,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416066182000023,43.73524041000002,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415866061000012,43.73534442999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415505957999993,43.73499287,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415019677000005,43.73510931,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415375119999998,43.73542449999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415460622999999,43.73559658999999,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415204773000013,43.73563441,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415021658000009,43.73579005000001,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414790898000021,43.73593182999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414536576000001,43.73596065999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415512495190002,43.7366281498032,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417332072341214,43.73771758368893,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418873230204741,43.73877571241193,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419142110422192,43.73847712514304,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419021090393514,43.73811417743455,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419190679523593,43.7378587827692,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419850585061147,43.73757228474087,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420399074406829,43.73760555882292,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420457413890754,43.73725619517442,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420333798401728,43.73716498791435,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420396504373983,43.73684132416717,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418478149857243,43.73523598789635,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418202862931748,43.73477086158007,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418225296647933,43.73449931632479,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417564606186713,43.73358803210659,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419443319956787,43.73918172628623,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420711067059981,43.74010724828849,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420983066374093,43.74041731339866,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422164563921272,43.74145159604973,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422365660410213,43.74139317947643,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422963231149204,43.74172088958904,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424454433151444,43.74095922695706,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.425063636322633,43.74156588737877,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.425285892895499,43.74144445673576,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424865442317685,43.74080338646932,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.425613023495128,43.74045279287922,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424941293434653,43.73944198020815,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424395101398494,43.73848096939489,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.423929644670732,43.73805215414122,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.423231978803315,43.73777774943043,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.42221285778588,43.73780232282162,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422015508723327,43.73778671960322,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422389180165956,43.73757439549585,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421474633387888,43.73735181273111,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421120041137305,43.73753064467809,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421060732428161,43.73768154109923,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420845094753505,43.73768028156472,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420834807360008,43.73832173525869,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420237980909308,43.73878391054415,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419683665481549,43.73883072227395,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419744559019701,43.73908342955649,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419443319956787,43.73918172628623,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418496582999996,43.73105429000002,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418119513000012,43.73125813000001,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417035715999987,43.73150377000003,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417801369901946,43.73185473282849,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418584870898128,43.73219944105407,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.41894602891624,43.73247754691842,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419518816143889,43.73234860360077,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420266731735728,43.73216882154254,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420675309267695,43.73206553612534,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421452309732304,43.73190764162803,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422101110512265,43.73184404705347,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423140834328907,43.73192377454985,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424047577614303,43.7320563652538,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425024569979013,43.73221910461157,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426346364587159,43.73243408313061,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427069735704325,43.73259121517835,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427018687669246,43.7328563012876,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427387604873992,43.73294215353545,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427618602663808,43.73298365486792,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42776926194308,43.73316320459038,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427853246747372,43.73324229998455,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428018540822499,43.7332520054401,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428053072302474,43.73324868304703,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42804388704374,43.73321951005548,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428157779465874,43.73320226453772,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428184633997812,43.73315114504467,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428173864894223,43.73300777874597,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428472513453945,43.73288785590012,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428340523264967,43.73240940190094,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428355260733552,43.7320638817348,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428052465635798,43.73183164547587,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427719754216082,43.73126147430344,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426791008264177,43.73050535738137,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426140051754682,43.73059151647244,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425422876643704,43.73013799032908,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424569817414428,43.72959358275482,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423973082002464,43.72925388225838,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423253358018433,43.72951012971406,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422212030034432,43.72965249553761,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421803319220919,43.7301342399201,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.4215757625905,43.73035387586872,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420850294302137,43.73005520723608,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420497749571428,43.72995749603205,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420256165533474,43.73023629378087,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419449086174669,43.7308514985659,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418994657919904,43.73100689871077,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418496582999996,43.73105429000002,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422504565000003,43.72723219,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422214272000005,43.72747621000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421491549999999,43.72803665999997,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421329629999991,43.72830198999998,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421163718000012,43.72867443000003,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419276724999997,43.72859253000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419206675999996,43.72905120999999,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418583629000004,43.72901666000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418475553000015,43.73002454999999,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417616122000008,43.72994506000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417434616999978,43.73032852999999,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418496582999996,43.73105429000002,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418994657919904,43.73100689871077,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419449086174669,43.7308514985659,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420256165533474,43.73023629378087,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420497749571428,43.72995749603205,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420850294302137,43.73005520723608,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.4215757625905,43.73035387586872,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421803319220919,43.7301342399201,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422212030034432,43.72965249553761,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423253358018433,43.72951012971406,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423973082002464,43.72925388225838,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42410389544898,43.72788678068092,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422504565000003,43.72723219,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422389180165956,43.73757439549585,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422015508723327,43.73778671960322,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42221285778588,43.73780232282162,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423231978803315,43.73777774943043,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423929644670732,43.73805215414122,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424395101398494,43.73848096939489,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424941293434653,43.73944198020815,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425613023495128,43.74045279287922,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424865442317685,43.74080338646932,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425285892895499,43.74144445673576,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425828559830128,43.74187221007835,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426106032131104,43.74224063802686,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426658721175235,43.74266479460832,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426896633526874,43.7431731275049,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42803338219397,43.74396886604708,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428124635598623,43.7446129050683,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428583886490758,43.74552649069036,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428656333382304,43.74601167227261,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429392567861366,43.74598470406469,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43019908502442,43.74636070222755,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430184824695862,43.74614711009478,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430041124596382,43.74587385687351,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430753592681651,43.74556027044869,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429606399867128,43.74462926967613,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428919084493753,43.74330607140439,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428472384727456,43.74215146410698,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428348136794614,43.74184188200886,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428045585745659,43.74156225878901,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428825052252918,43.74116848731372,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429136345726417,43.74099696525549,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429195694861344,43.74068140305448,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429711928682434,43.74035844243281,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430065086087994,43.74050878245765,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430434900666974,43.74034907418406,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430778838593892,43.74009471674051,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430384009548674,43.73886676523743,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43022855005086,43.73820539045028,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429532505751562,43.73764671224635,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428878098113083,43.73865563528157,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427662318340127,43.7379168624471,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426230067309811,43.73761808075336,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424453465789913,43.73740626769943,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422574970752851,43.73746434232518,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422389180165956,43.73757439549585,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428656333382304,43.74601167227261,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428722045447174,43.7461767820448,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428648594850229,43.74627290660531,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428783307585796,43.7466216757588,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429298023348787,43.74683410367367,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42961314062544,43.74766541738203,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429786566745364,43.74808335116288,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430419415423007,43.74823987563861,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430672477144924,43.74896279035944,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.431773382431976,43.74883377927693,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.432308862640071,43.7490681523884,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43316111345729,43.74937106151356,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.433725337090085,43.74978180687035,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.433943330463757,43.74963700122542,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.434841622546875,43.7498777721828,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.435290043812335,43.74994747731498,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.435960931770083,43.75000309948296,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.437439107288091,43.75113650953647,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436779172106549,43.75154669043439,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436858030829681,43.75192057309162,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.437391376350028,43.75182467783615,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438374318142489,43.75150853061132,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438685373240627,43.75122346946171,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438738903210624,43.7508608724867,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43867174315125,43.7504776030522,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43862117599273,43.75003531970896,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438273687506765,43.74961068461203,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436738220838672,43.74901129042753,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436477587521264,43.74900251993036,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.434169656874509,43.74783466027769,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.431783826666114,43.74643068462912,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430753592681651,43.74556027044869,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430041124596382,43.74587385687351,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430184824695862,43.74614711009478,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43019908502442,43.74636070222755,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429392567861366,43.74598470406469,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428656333382304,43.74601167227261,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417151421038497,43.73438386838809,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418225296647933,43.73449931632479,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418202862931748,43.73477086158007,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418478149857243,43.73523598789635,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420396504373983,43.73684132416717,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421474633387888,43.73735181273111,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.422389180165956,43.73757439549585,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.422574970752851,43.73746434232518,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.424453465789913,43.73740626769943,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.426230067309811,43.73761808075336,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427662318340127,43.7379168624471,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428038293652051,43.73810579370274,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428415582222376,43.73830218127022,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428878098113083,43.73865563528157,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429532505751562,43.73764671224635,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.43177958793355,43.73684077032769,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.432454305187117,43.73631487190695,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428867685250811,43.73319793548649,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428472513453945,43.73288785590012,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428173864894223,43.73300777874597,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428184633997812,43.73315114504467,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428157779465874,43.73320226453772,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.42804388704374,43.73321951005548,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428053072302474,43.73324868304703,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428018540822499,43.7332520054401,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427853246747372,43.73324229998455,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.42776926194308,43.73316320459038,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427618602663808,43.73298365486792,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427387604873992,43.73294215353545,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427018687669246,43.7328563012876,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427069735704325,43.73259121517835,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.426346364587159,43.73243408313061,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.425024569979013,43.73221910461157,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.424047577614303,43.7320563652538,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.423140834328907,43.73192377454985,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.422101110512265,43.73184404705347,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421452309732304,43.73190764162803,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420675309267695,43.73206553612534,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420266731735728,43.73216882154254,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419518816143889,43.73234860360077,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.41894602891624,43.73247754691842,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418584870898128,43.73219944105407,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417801369901946,43.73185473282849,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417035715999987,43.73150377000003,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.415686273000004,43.73140827000001,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.416856147336349,43.73251603862495,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417564606186713,43.73358803210659,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417151421038497,43.73438386838809,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420396504373983,43.73684132416717,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420333798401728,43.73716498791435,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420457413890754,43.73725619517442,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420399074406829,43.73760555882292,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419850585061147,43.73757228474087,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419190679523593,43.7378587827692,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419021090393514,43.73811417743455,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419142110422192,43.73847712514304,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418873230204741,43.73877571241193,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419443319956787,43.73918172628623,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419744559019701,43.73908342955649,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419683665481549,43.73883072227395,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420237980909308,43.73878391054415,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420834807360008,43.73832173525869,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420845094753505,43.73768028156472,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421060732428161,43.73768154109923,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421120041137305,43.73753064467809,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421474633387888,43.73735181273111,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420396504373983,43.73684132416717,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430858271494349,43.73961431812234,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430778838593892,43.74009471674051,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430434900666974,43.74034907418406,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430065086087994,43.74050878245765,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429711928682434,43.74035844243281,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429195694861344,43.74068140305448,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429136345726417,43.74099696525549,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428825052252918,43.74116848731372,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428045585745659,43.74156225878901,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428348136794614,43.74184188200886,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428472384727456,43.74215146410698,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428919084493753,43.74330607140439,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429606399867128,43.74462926967613,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430753592681651,43.74556027044869,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.431783826666114,43.74643068462912,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.434169656874509,43.74783466027769,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.436477587521264,43.74900251993036,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.436738220838672,43.74901129042753,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.438273687506765,43.74961068461203,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.43862117599273,43.75003531970896,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.439238468871643,43.74927471683961,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.439732881877939,43.74838219752311,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.439933293586867,43.7464977152092,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.437950022030025,43.74612598069747,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.432984972294214,43.74424091282706,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.434031120177556,43.74238402666636,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.432899625820466,43.7412625274158,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.431666316590344,43.73948829860639,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430858271494349,43.73961431812234,0 + + + + diff --git a/config/permissions.yaml b/config/permissions.yaml index 0897cc5bb40b321f2ab4b8a74ba86c7fe29a6a66..f03950ab329c3dc53875d8e87449d0d1998f8a80 100644 --- a/config/permissions.yaml +++ b/config/permissions.yaml @@ -186,7 +186,7 @@ services: #------------------------------ - name: 'meep-app-enablement' api: 'mec_app_support' - path: '/mec_app_support/v1' + path: '/mec_app_support/v2' sbox: true default: mode: 'allow' @@ -236,6 +236,61 @@ services: method: 'GET' mode: 'block' #------------------------------ + # MEC-CAPIF Service Management (Sbox) + #------------------------------ + - name: 'meep-app-enablement' + api: 'service-apis' + path: '/service-apis/v1' + sbox: true + default: + mode: 'allow' + fileservers: + - name: 'Api' + path: '/api' + mode: 'verify' + roles: + admin: 'allow' + user: 'block' + - name: 'UserApi' + path: '/user-api' + mode: 'verify' + roles: + admin: 'allow' + user: 'allow' + endpoints: + - name: 'Index' + path: '/' + method: 'GET' + mode: 'block' + + #------------------------------ + # MEC-CAPIF Service Management (Sbox) + #------------------------------ + - name: 'meep-app-enablement' + api: 'published-apis' + path: '/published-apis/v1' + sbox: true + default: + mode: 'allow' + fileservers: + - name: 'Api' + path: '/api' + mode: 'verify' + roles: + admin: 'allow' + user: 'block' + - name: 'UserApi' + path: '/user-api' + mode: 'verify' + roles: + admin: 'allow' + user: 'allow' + endpoints: + - name: 'Index' + path: '/' + method: 'GET' + mode: 'block' + #------------------------------ # GIS Engine (Sbox) #------------------------------ - name: 'meep-gis-engine' @@ -622,6 +677,115 @@ services: admin: 'allow' user: 'block' #------------------------------ + # Sandbox API + #------------------------------ + - name: 'meep-sandbox-api' + path: '/sandbox-api/v1' + sbox: true + default: + mode: 'allow' + fileservers: + - name: 'Api' + path: '/api' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'UserApi' + path: '/user-api' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + endpoints: + - name: 'Index' + path: '/' + method: 'GET' + mode: 'allow' + - name: 'login' + path: '/login' + method: 'POST' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'logout' + path: '/logout' + method: 'POST' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'sandboxAppInstancesGET' + path: '/sandboxAppInstances' + method: 'GET' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'sandboxLogsSubscriptionsPOST' + path: '/sandboxLogsSubscriptions' + method: 'POST' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'sandboxLogsSubscriptionsDELETE' + path: '/sandboxLogsSubscriptions/{subscription_reference}' + method: 'DELETE' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'sandboxNetworkScenariosGET' + path: '/sandboxNetworkScenarios' + method: 'GET' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'sandboxNetworkScenarioPOST' + path: 'sandboxNetworkScenarios/{network_scenario_id}' + method: 'POST' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + - name: 'SandboxNetworkScenarioDELETE' + path: 'sandboxNetworkScenarios/{network_scenario_id}' + method: 'DELETE' + mode: 'allow' + roles: + admin: 'allow' + user: 'allow' + #------------------------------ + # FED Service (Sbox) + #------------------------------ + - name: 'meep-federation' + path: '/fed_enablement/v1' + sbox: true + default: + mode: 'allow' + fileservers: + - name: 'Api' + path: '/api' + mode: 'verify' + roles: + admin: 'allow' + user: 'block' + - name: 'UserApi' + path: '/user-api' + mode: 'verify' + roles: + admin: 'allow' + user: 'allow' + endpoints: + - name: 'Index' + path: '/' + method: 'GET' + mode: 'block' + + #------------------------------ # RNI Service (Sbox) #------------------------------ - name: 'meep-rnis' diff --git a/deploy.sh b/deploy.sh index f8a873bbeff1d5f3767c8e22c3255cce35af8f0e..dc261199ba5b1605b8231a40f75cd99c929045e5 100755 --- a/deploy.sh +++ b/deploy.sh @@ -4,7 +4,7 @@ SCRIPT=$(readlink -f "$0") BASEDIR=$(dirname "$SCRIPT") -MEEPDIR=~/AdvantEDGE +MEEPDIR=~/etsi-mec-sandbox CONFIGDIR=$MEEPDIR/config DASHBOARDDIR=$MEEPDIR/charts/grafana/dashboards APIDIR=$MEEPDIR/config/api diff --git a/js-apps/frontend/src/js/app-constants.js b/js-apps/frontend/src/js/app-constants.js index 6d15f43f894864ef1a64719f87720838ba71be0f..955dfd34f14d81bb8e4c5856767211b2c040ced4 100644 --- a/js-apps/frontend/src/js/app-constants.js +++ b/js-apps/frontend/src/js/app-constants.js @@ -1,9 +1,9 @@ /* - * Copyright (c) 2022 ETSI. All rights reserved. + * Copyright (c) 2022-2025 ETSI. All rights reserved. */ // Version -export const MEC_SANDBOX_VERSION = 'v1.9'; +export const MEC_SANDBOX_VERSION = 'v1.10'; // Host export const HOST_PATH = location.origin; diff --git a/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js b/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js index 3c623e852795d909259e97662a0ab044b3dfadf5..651e60270b1333455a95cd7a575b51fec7d1c7ef 100644 --- a/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js +++ b/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 ETSI. All rights reserved. + * Copyright (c) 2022-2025 ETSI. All rights reserved. */ import React, { Component } from 'react'; @@ -78,7 +78,7 @@ class DetailedDataDialog extends Component { mapService(loggerName) { //loggerName is a combination of loggerName and mep name - let prefixes = ['meep-loc-serv', 'meep-rnis', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis', 'meep-tm']; + let prefixes = ['meep-loc-serv', 'meep-federation', 'meep-rnis', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis', 'meep-tm']; let prefixStd = ''; var prefix = ''; for (var i = 0; i < prefixes.length; i++) { @@ -89,20 +89,14 @@ class DetailedDataDialog extends Component { } switch(prefix) { - case 'meep-loc-serv': - prefixStd = '013'; + case 'meep-app-enablement': + prefixStd = '011'; break; case 'meep-rnis': prefixStd = '012'; break; - case 'meep-wais': - prefixStd = '028'; - break; - case 'meep-app-enablement': - prefixStd = '011'; - break; - case 'meep-ams': - prefixStd = '021'; + case 'meep-loc-serv': + prefixStd = '013'; break; case 'meep-tm': prefixStd = '015'; @@ -110,9 +104,18 @@ class DetailedDataDialog extends Component { case 'meep-dai': prefixStd = '016'; break; + case 'meep-ams': + prefixStd = '021'; + break; + case 'meep-wais': + prefixStd = '028'; + break; case 'meep-vis': prefixStd = '030'; break; + case 'meep-federation': + prefixStd = '040'; + break; default: prefixStd = 'N/A'; } diff --git a/js-apps/frontend/src/js/components/dialogs/version-dialog.js b/js-apps/frontend/src/js/components/dialogs/version-dialog.js index ec7a7c47954937c98a4502a110fcc7b7c76659c3..d0d3dc6d28ae386d1142287c811b30e18b02dbad 100644 --- a/js-apps/frontend/src/js/components/dialogs/version-dialog.js +++ b/js-apps/frontend/src/js/components/dialogs/version-dialog.js @@ -22,6 +22,18 @@ class VersionDialog extends Component { >

+

v1.10 • 2025-06-20

+ +

AdvantEDGE baseline upgrade to v1.10.0

+ STF678 Final: +
    +
  • MEC Federation Service API support
  • +
  • MEC Sandbox API for command line support
  • +
  • Support of Edge Native Connector (3GPP TS 29.222: 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Common API Framework for 3GPP Northbound APIs)
  • +
  • General maintenance fixes
  • +
+
+

v1.9 • 2023-02-22

AdvantEDGE baseline upgrade to v1.9.0

diff --git a/js-apps/frontend/src/js/containers/app-container.js b/js-apps/frontend/src/js/containers/app-container.js index 36b906c35de46541243fde16beb5f474399981fe..3b1332101c19434ff6994ad776a87819897c82ee 100644 --- a/js-apps/frontend/src/js/containers/app-container.js +++ b/js-apps/frontend/src/js/containers/app-container.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 ETSI. All rights reserved. + * Copyright (c) 2022-2025 ETSI. All rights reserved. */ import _ from 'lodash'; @@ -120,7 +120,7 @@ const apiTableMaxSize = 100; var metricsQuery = { /* tags: [{ name: 'logger_name', - value: 'meep-loc-serv,meep-rnis,meep-dai,meep-wais,meep-app-enablement' + value: 'meep-loc-serv,meep-federation,meep-rnis,meep-dai,meep-vis,meep-federation,meep-wais,meep-app-enablement' }], */ fields: ['id', 'endpoint', 'url', 'method', 'resp_code', 'resp_body', 'body', 'proc_time', 'logger_name', 'direction'], diff --git a/js-apps/frontend/src/js/containers/home/home-page-container.js b/js-apps/frontend/src/js/containers/home/home-page-container.js index 0ba9737ed541867f0fbccee939736ff80861e54b..5e84c926cacb148df97836c57b5dce9a07f5bff4 100644 --- a/js-apps/frontend/src/js/containers/home/home-page-container.js +++ b/js-apps/frontend/src/js/containers/home/home-page-container.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 ETSI. All rights reserved. + * Copyright (c) 2022-2025 ETSI. All rights reserved. */ import { connect } from 'react-redux'; @@ -68,13 +68,27 @@ class HomePageContainer extends Component {

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 + (4G, 5G, Wi-Fi, MEC Federation) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behaviour and capabilities of the Location (MEC013), Radio Network - Information (MEC012), Traffic Management APIs (MEC015), Application Mobility (MEC021), WLAN Information (MEC028) and - V2X Information API (MEC030) service APIs. Such contextual information can offer significant differential performance - for edge based MEC applications. + Information (MEC012), Traffic Management APIs (MEC015), Device application interface (MEC016), Application Mobility (MEC021), WLAN Information (MEC028) and + V2X Information API (MEC030) service API and MEC Federation Service API (MEC040) service APIs. + MEC Sandbox provides also a support for Edge Native Connector (3GPP TS 29.222: 3rd Generation Partnership Project; Technical Specification Group Core + Network and Terminals; Common API Framework for 3GPP Northbound APIs). +

+

+ Such contextual information can offer significant differential performance for edge based MEC applications. MEC Sandbox also provides the support of capabilities described by Edge Platform Application Enablement (MEC011) and Device Application Interface (MEC016).

+

+ Important Note: If MEC Federation Service API (MEC040) is used (e.g. by activation 4g-5g-wifi-macro-v2x-fed network scenarion), MEC services and + MEC applications will be visible from other MEC Platform using also MEC Federation Service API (MEC040). + If you choose to use MEC Federation Service API (MEC040), you accept to establish MEC federation between two partners as specified in ETSI GS MEC 040 V3.2.1 (2024-03) Clause 5.2.4.1 Introduction. + +

+

+ Users can use the MEC Sandbox API to develop their own MEC applications to access and use the live MEC APIs running an instance of the MEC Sandbox. + The demo6 example illustrates how to use the MEC Sandbox API. +

But wait - MEC Sandbox is not only a browser experience!
Users with existing applications can configure them to access and use the live MEC APIs running in their own @@ -144,4 +158,4 @@ const ConnectedHomePageContainer = connect( mapDispatchToProps )(HomePageContainer); -export default ConnectedHomePageContainer; \ No newline at end of file +export default ConnectedHomePageContainer; diff --git a/js-apps/frontend/src/js/containers/sandbox/api-table.js b/js-apps/frontend/src/js/containers/sandbox/api-table.js index ffdc0cc806e8925621a34a358daa47884b6bb12f..16404f82853e77eaf1a6f3d4670148d763822da3 100644 --- a/js-apps/frontend/src/js/containers/sandbox/api-table.js +++ b/js-apps/frontend/src/js/containers/sandbox/api-table.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 ETSI. All rights reserved. + * Copyright (c) 2022-2025 ETSI. All rights reserved. */ import PropTypes from 'prop-types'; @@ -111,7 +111,7 @@ class ApiTable extends Component { mapService(loggerName) { //loggerName is a combination of loggerName and mep name - let prefixes = ['meep-loc-serv', 'meep-rnis', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis', 'meep-tm']; + let prefixes = ['meep-loc-serv', 'meep-rnis', 'meep-federation', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis', 'meep-tm']; let prefixStd = ''; var prefix = ''; for (var i = 0; i < prefixes.length; i++) { @@ -146,6 +146,9 @@ class ApiTable extends Component { case 'meep-vis': prefixStd = '030'; break; + case 'meep-federation': + prefixStd = '040'; + break; default: prefixStd = 'N/A'; } diff --git a/js-apps/frontend/src/js/util/scenario-utils.js b/js-apps/frontend/src/js/util/scenario-utils.js index adaccc49b01a8c285da4d779f118fd7f5db17d4d..fb07e9751beeb771e58de75a03cc00dd15308579 100644 --- a/js-apps/frontend/src/js/util/scenario-utils.js +++ b/js-apps/frontend/src/js/util/scenario-utils.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 ETSI. All rights reserved. + * Copyright (c) 2022-2025 ETSI. All rights reserved. */ import _ from 'lodash'; @@ -618,7 +618,7 @@ export function parseEdgeApps(scenario) { mepName: pl.name, env: proc.environment, url: 'api/?urls.primaryName='+pl.name+'%20-%20MEC%20Application%20Support%20API', - path: pl.name+'/mec_app_support/v1', + path: pl.name+'/mec_app_support/v2', pseudoName: 'MEC Application Support (011) on ' + pl.name, dropDownName: 'MEC Application Support (011)', enabled: true, // always running @@ -641,6 +641,55 @@ export function parseEdgeApps(scenario) { enableInProgressCount: -1, disableInProgressCount: -1 }); + edgeApps.push({ + id: proc.id, + name: proc.name+'-capif-mgmt', + instance: '', + img: proc.image, + mepName: pl.name, + env: proc.environment, + url: 'api/?urls.primaryName='+pl.name+'%20-%20MEC%20CAPIF%20Management%20API', + path: pl.name+'/service-apis/v1', + pseudoName: 'MEC-CAPIF Service Management (011) on ' + pl.name, + dropDownName: 'MEC-CAPIF Service Management (011)', + enabled: true, // always running + enableInProgressCount: -1, + disableInProgressCount: -1 + }); + // MEC016 + } else if (proc.image.includes('meep-dai')) { + edgeApps.push({ + id: proc.id, + name: proc.name, + instance: '', + img: proc.image, + mepName: pl.name, + env: proc.environment, + url: 'api/?urls.primaryName='+pl.name+'%20-%20Device%20Application%20Interface%20REST%20API', + path: pl.name+'/dev_app/v1', + pseudoName: 'Device Application Interface (016) on ' + pl.name, + dropDownName: 'Device Application Interface (016)', + enabled: true, + enableInProgressCount: -1, + disableInProgressCount: -1 + }); + // MEC040 + } else if (proc.image.includes('meep-federation')) { + edgeApps.push({ + id: proc.id, + name: proc.name, + instance: '', + img: proc.image, + mepName: pl.name, + env: proc.environment, + url: 'api/?urls.primaryName='+pl.name+'%20-%20Federation%20Service%20REST%20API', + path: pl.name+'/fed_enablement/v1', + pseudoName: 'MEC Federation APIs (040) on ' + pl.name, + dropDownName: 'MEC Federation APIs (040)', + enabled: true, + enableInProgressCount: -1, + disableInProgressCount: -1 + }); } } } diff --git a/networks/4g-5g-macro-v2x-fed.yaml b/networks/4g-5g-macro-v2x-fed.yaml new file mode 100644 index 0000000000000000000000000000000000000000..543a29829c2f98a7a73535904a37facab098efe8 --- /dev/null +++ b/networks/4g-5g-macro-v2x-fed.yaml @@ -0,0 +1,5515 @@ +version: 1.10.0 +name: 4g-5g-macro-v2x-fed +deployment: + netChar: + latency: 50 + latencyVariation: 10 + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + throughput: null + packetLoss: null + connectivity: + model: OPEN + d2d: + d2dMaxDistance: 100 + disableD2dViaNetwork: null + userMeta: + mec-sandbox: '{"defaultStaticUeCount": 1, "defaultLowVelocityUeCount": 1, "defaultHighVelocityUeCount": 1, "highVelocitySpeedThreshold": 10}' + network-info: '{"type": "local", "path":"4G-Macro-Network-Topology.png"}' + domains: + - + id: PUBLIC + name: PUBLIC + type: PUBLIC + netChar: + latency: 6 + latencyVariation: 2 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + zones: + - + id: PUBLIC-COMMON + name: PUBLIC-COMMON + type: COMMON + netChar: + latency: 5 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + networkLocations: + - + id: PUBLIC-COMMON-DEFAULT + name: PUBLIC-COMMON-DEFAULT + type: DEFAULT + netChar: + latency: 1 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poa5GConfig: null + poaWifiConfig: null + geoData: null + physicalLocations: null + interFogLatency: null + interFogLatencyVariation: null + interFogThroughput: null + interFogPacketLoss: null + interEdgeLatency: null + interEdgeLatencyVariation: null + interEdgeThroughput: null + interEdgePacketLoss: null + edgeFogLatency: null + edgeFogLatencyVariation: null + edgeFogThroughput: null + edgeFogPacketLoss: null + meta: null + userMeta: null + interZoneLatency: null + interZoneLatencyVariation: null + interZoneThroughput: null + interZonePacketLoss: null + meta: null + userMeta: null + cellularDomainConfig: null + - + id: f1c5f2fe-5fbb-48fa-a0df-6ad00e4eeb4c + name: sandbox-operator + type: OPERATOR-CELLULAR + netChar: + latency: 6 + latencyVariation: 2 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + cellularDomainConfig: + mnc: '001' + mcc: '001' + defaultCellId: FFFFFFF + zones: + - + id: sandbox-operator-COMMON + name: sandbox-operator-COMMON + type: COMMON + netChar: + latency: 5 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + networkLocations: + - + id: sandbox-operator-COMMON-DEFAULT + name: sandbox-operator-COMMON-DEFAULT + type: DEFAULT + netChar: + latency: 1 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poa5GConfig: null + poaWifiConfig: null + geoData: null + physicalLocations: null + interFogLatency: null + interFogLatencyVariation: null + interFogThroughput: null + interFogPacketLoss: null + interEdgeLatency: null + interEdgeLatencyVariation: null + interEdgeThroughput: null + interEdgePacketLoss: null + edgeFogLatency: null + edgeFogLatencyVariation: null + edgeFogThroughput: null + edgeFogPacketLoss: null + meta: null + userMeta: null + - + id: 6fd7e9d1-3646-474d-880b-d4a21799d280 + name: zone01 + type: ZONE + netChar: + latency: 5 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + meta: + display.map.color: blueviolet + networkLocations: + - + id: zone01-DEFAULT + name: zone01-DEFAULT + type: DEFAULT + netChar: + latency: 1 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + physicalLocations: + - + id: 138c1c53-7f25-4c52-a025-3b607da5f97a + name: mep1 + type: EDGE + geoData: + location: + type: Point + coordinates: + - 7.421096 + - 43.73408 + radius: null + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + connected: true + dataNetwork: {dnn: null, ladn: null, ecsp: null} + processes: + - + id: 62cc2936-af22-4946-b3e5-5b9143d7203f + name: mec011-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-app-enablement' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + environment: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: b8a203be-ac81-45a6-8d88-fdb1f8f5393b + name: mec012-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-rnis' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: 298b2c0c-7efa-45d3-8b47-8ab3c009b845 + name: mec013-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-loc-serv' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: f1e4d448-e277-496b-bf63-98391cfd20fb + name: mec015-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-tm' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: fb4d3c6a-197e-4e3f-96ae-ab4d5ac663a9 + name: mec016-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-dai' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: b8ae165a-a1e3-4d6c-86d9-52c59ad314b6 + name: mec028-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-wais' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: 5015e45f-be53-4e28-8f47-c107fd1dea8c + name: mec030-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-vis' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false,MEEP_PREDICT_MODEL_SUPPORTED=true,MEEP_POA_LIST="5g-small-cell-1;5g-small-cell-2;5g-small-cell-3;5g-small-cell-4"' + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: a88756b5-f816-4fd0-9977-936d1382b6d8 + name: mec040-1 + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-federation' + environment: 'MEEP_SCOPE_OF_LOCALITY=MEC_SYSTEM,MEEP_CONSUMED_LOCAL_ONLY=false' + netChar: + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + latencyDistribution: null + throughput: null + packetLoss: null + isExternal: null + commandArguments: null + commandExe: null + serviceConfig: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + - + id: 1600b680-a37a-4e74-8025-3054af752872 + name: meep-mosquitto + type: EDGE-APP + image: 'meep-docker-registry:30001/meep-mosquitto' + serviceConfig: + name: meep-mosquitto + ports: + - + protocol: TCP + port: 1883 + externalPort: null + meSvcName: null + netChar: + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + latencyDistribution: null + throughput: null + packetLoss: null + isExternal: null + environment: null + commandArguments: null + commandExe: null + gpuConfig: null + memoryConfig: null + cpuConfig: null + externalConfig: null + status: null + userChartLocation: null + userChartAlternateValues: null + userChartGroup: null + meta: null + userMeta: null + appLatency: null + appLatencyVariation: null + appThroughput: null + appPacketLoss: null + placementId: null + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + isExternal: null + networkLocationsInRange: null + wireless: null + wirelessType: null + meta: null + userMeta: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + macId: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poa5GConfig: null + poaWifiConfig: null + geoData: null + - + id: 3480e529-3fc1-44b8-a892-42bbbfa4018f + name: 4g-macro-cell-1 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '1010101' + geoData: + location: + type: Point + coordinates: + - 7.419344 + - 43.72764 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: 3331ee44-2236-1111-0020-5a3c2bde0eaa + name: 10.10.0.4 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.420433 + - 43.729942 + path: + type: LineString + coordinates: + - + - 7.420433 + - 43.729942 + - + - 7.420659 + - 43.73036 + - + - 7.420621 + - 43.731045 + - + - 7.420922 + - 43.73129 + - + - 7.421345 + - 43.731373 + - + - 7.42135 + - 43.73168 + - + - 7.421148 + - 43.73173 + - + - 7.420616 + - 43.731964 + - + - 7.419779 + - 43.732197 + - + - 7.419111 + - 43.732353 + - + - 7.418931 + - 43.732315 + - + - 7.418345 + - 43.731964 + - + - 7.418319 + - 43.73186 + - + - 7.418024 + - 43.73179 + - + - 7.41796 + - 43.731728 + - + - 7.417729 + - 43.731743 + - + - 7.417463 + - 43.731632 + - + - 7.417507 + - 43.73148 + - + - 7.417428 + - 43.731407 + - + - 7.417343 + - 43.731396 + - + - 7.417334 + - 43.731133 + - + - 7.417317 + - 43.73053 + - + - 7.417164 + - 43.7304 + - + - 7.417164 + - 43.72998 + - + - 7.417319 + - 43.729916 + - + - 7.419065 + - 43.730103 + eopMode: REVERSE + velocity: 9 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-walk + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A0A0004 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + - + id: 1e2600f4-4861-43d6-abcb-07f4481a124c + name: 10.10.0.3 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.423684 + - 43.727867 + path: + type: LineString + coordinates: + - + - 7.423684 + - 43.727867 + - + - 7.422571 + - 43.727325 + - + - 7.422421 + - 43.727333 + - + - 7.42196 + - 43.727123 + - + - 7.421828 + - 43.72711 + - + - 7.420988 + - 43.726707 + - + - 7.420757 + - 43.72654 + - + - 7.420393 + - 43.72653 + - + - 7.420207 + - 43.726746 + - + - 7.419985 + - 43.72686 + - + - 7.41988 + - 43.72701 + - + - 7.419869 + - 43.727287 + - + - 7.419807 + - 43.727474 + - + - 7.419671 + - 43.727585 + - + - 7.419502 + - 43.727608 + - + - 7.419402 + - 43.728645 + - + - 7.421238 + - 43.72874 + - + - 7.421412 + - 43.728493 + - + - 7.421532 + - 43.728237 + - + - 7.421697 + - 43.72798 + - + - 7.421928 + - 43.727783 + - + - 7.422381 + - 43.727524 + - + - 7.422507 + - 43.72749 + - + - 7.422922 + - 43.72768 + - + - 7.422894 + - 43.727715 + - + - 7.423666 + - 43.72804 + - + - 7.423763 + - 43.72794 + - + - 7.4237 + - 43.727905 + - + - 7.423684 + - 43.727867 + eopMode: LOOP + velocity: 9 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-walk + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A0A0003 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: 8c2599e8-dd88-4ff2-9cf4-6fc54663c152 + name: 4g-macro-cell-2 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '2020202' + geoData: + location: + type: Point + coordinates: + - 7.413819 + - 43.729538 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: c52208b3-93bb-4255-9b34-52432acc4398 + name: 10.100.0.1 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.412295 + - 43.728676 + path: + type: LineString + coordinates: + - + - 7.412295 + - 43.728676 + - + - 7.412273 + - 43.728664 + - + - 7.412281 + - 43.728645 + - + - 7.412294 + - 43.72861 + - + - 7.412353 + - 43.728577 + - + - 7.412433 + - 43.728584 + - + - 7.412494 + - 43.72862 + - + - 7.412491 + - 43.72867 + - + - 7.412466 + - 43.728714 + - + - 7.412627 + - 43.728798 + - + - 7.412708 + - 43.728863 + - + - 7.412821 + - 43.729042 + - + - 7.413009 + - 43.729298 + - + - 7.413331 + - 43.72953 + - + - 7.414082 + - 43.729942 + - + - 7.414709 + - 43.730297 + - + - 7.415187 + - 43.730553 + - + - 7.415568 + - 43.73077 + - + - 7.416118 + - 43.73108 + - + - 7.416652 + - 43.73135 + - + - 7.416979 + - 43.731503 + - + - 7.417131 + - 43.73154 + - + - 7.41718 + - 43.731457 + - + - 7.417308 + - 43.73144 + - + - 7.417392 + - 43.731476 + - + - 7.417432 + - 43.731533 + - + - 7.417426 + - 43.731598 + - + - 7.417365 + - 43.73165 + - + - 7.417268 + - 43.731663 + - + - 7.417177 + - 43.73164 + - + - 7.417037 + - 43.731712 + - + - 7.416912 + - 43.73183 + - + - 7.416855 + - 43.731888 + - + - 7.41681 + - 43.731964 + - + - 7.41681 + - 43.732018 + - + - 7.416761 + - 43.732048 + - + - 7.4167 + - 43.732037 + - + - 7.416646 + - 43.731995 + - + - 7.416437 + - 43.73177 + - + - 7.416278 + - 43.731544 + - + - 7.416238 + - 43.731464 + - + - 7.416225 + - 43.731384 + - + - 7.416228 + - 43.73122 + - + - 7.416206 + - 43.731102 + - + - 7.416128 + - 43.73104 + - + - 7.416005 + - 43.73094 + - + - 7.415892 + - 43.73085 + - + - 7.415442 + - 43.730564 + - + - 7.414985 + - 43.73029 + - + - 7.413749 + - 43.7296 + - + - 7.413719 + - 43.729523 + - + - 7.414267 + - 43.72908 + - + - 7.414825 + - 43.728683 + - + - 7.414983 + - 43.728634 + - + - 7.415184 + - 43.728607 + - + - 7.415248 + - 43.728603 + - + - 7.41531 + - 43.72861 + - + - 7.415366 + - 43.72868 + - + - 7.415329 + - 43.728752 + - + - 7.415332 + - 43.72882 + - + - 7.41538 + - 43.728905 + - + - 7.415645 + - 43.729088 + - + - 7.416165 + - 43.729477 + - + - 7.416268 + - 43.729515 + - + - 7.416372 + - 43.72958 + - + - 7.416673 + - 43.7298 + - + - 7.416808 + - 43.729828 + - + - 7.416867 + - 43.72982 + - + - 7.417084 + - 43.72983 + - + - 7.417418 + - 43.72988 + - + - 7.417764 + - 43.729916 + - + - 7.418454 + - 43.72999 + - + - 7.418545 + - 43.729046 + - + - 7.418624 + - 43.729004 + - + - 7.419099 + - 43.72902 + - + - 7.419173 + - 43.728962 + - + - 7.419217 + - 43.72858 + - + - 7.420207 + - 43.72863 + - + - 7.421203 + - 43.728664 + - + - 7.421265 + - 43.72848 + - + - 7.421318 + - 43.72833 + - + - 7.421387 + - 43.72821 + - + - 7.421448 + - 43.72811 + - + - 7.421565 + - 43.727966 + - + - 7.42162 + - 43.7279 + - + - 7.42168 + - 43.72785 + - + - 7.421951 + - 43.727634 + - + - 7.422287 + - 43.72743 + - + - 7.422104 + - 43.72733 + - + - 7.421898 + - 43.72723 + - + - 7.421297 + - 43.726948 + - + - 7.42101 + - 43.726795 + - + - 7.42075 + - 43.72662 + - + - 7.420669 + - 43.726624 + - + - 7.420599 + - 43.726635 + - + - 7.420543 + - 43.72666 + - + - 7.420205 + - 43.726803 + - + - 7.420039 + - 43.726883 + - + - 7.41995 + - 43.72704 + - + - 7.419926 + - 43.727287 + - + - 7.419913 + - 43.727413 + - + - 7.419859 + - 43.72752 + - + - 7.419728 + - 43.727615 + - + - 7.419527 + - 43.72767 + - + - 7.419304 + - 43.72768 + - + - 7.418912 + - 43.727684 + - + - 7.418875 + - 43.727726 + - + - 7.418805 + - 43.727734 + - + - 7.418751 + - 43.727886 + - + - 7.41866 + - 43.728058 + - + - 7.418553 + - 43.728134 + - + - 7.418459 + - 43.72819 + - + - 7.418341 + - 43.728245 + - + - 7.418135 + - 43.728283 + - + - 7.418035 + - 43.72831 + - + - 7.417955 + - 43.728355 + - + - 7.417933 + - 43.728546 + - + - 7.417923 + - 43.72878 + - + - 7.417864 + - 43.72901 + - + - 7.41777 + - 43.729256 + - + - 7.417654 + - 43.729446 + - + - 7.417483 + - 43.729645 + - + - 7.417416 + - 43.72971 + - + - 7.417233 + - 43.72983 + - + - 7.417139 + - 43.729893 + - + - 7.417102 + - 43.729935 + - + - 7.41707 + - 43.72999 + - + - 7.417072 + - 43.730053 + - + - 7.417314 + - 43.730247 + - + - 7.417579 + - 43.730446 + - + - 7.418376 + - 43.73103 + - + - 7.41858 + - 43.73113 + - + - 7.419038 + - 43.73124 + - + - 7.419392 + - 43.73131 + - + - 7.419736 + - 43.73141 + - + - 7.420988 + - 43.73178 + - + - 7.421616 + - 43.731987 + - + - 7.421924 + - 43.732105 + - + - 7.422169 + - 43.73223 + - + - 7.422276 + - 43.732334 + - + - 7.422316 + - 43.73246 + - + - 7.422297 + - 43.732597 + - + - 7.42222 + - 43.732723 + - + - 7.422096 + - 43.73284 + - + - 7.422002 + - 43.732975 + - + - 7.421962 + - 43.733047 + - + - 7.421949 + - 43.733135 + - + - 7.421696 + - 43.733627 + - + - 7.421522 + - 43.734016 + - + - 7.421377 + - 43.73445 + - + - 7.421289 + - 43.73488 + - + - 7.421232 + - 43.735355 + - + - 7.421211 + - 43.73588 + - + - 7.421291 + - 43.73624 + - + - 7.421447 + - 43.736584 + - + - 7.421576 + - 43.73678 + - + - 7.421629 + - 43.73683 + - + - 7.421755 + - 43.736908 + - + - 7.422032 + - 43.737015 + - + - 7.42237 + - 43.737045 + - + - 7.422756 + - 43.73709 + - + - 7.423142 + - 43.737164 + - + - 7.423915 + - 43.737328 + - + - 7.424164 + - 43.737377 + - + - 7.424414 + - 43.737408 + - + - 7.424918 + - 43.73745 + - + - 7.425942 + - 43.73778 + - + - 7.426543 + - 43.737877 + - + - 7.426795 + - 43.737984 + - + - 7.426946 + - 43.738132 + - + - 7.426972 + - 43.738243 + - + - 7.426924 + - 43.738384 + - + - 7.426747 + - 43.738514 + - + - 7.426495 + - 43.738655 + - + - 7.426119 + - 43.738857 + - + - 7.425932 + - 43.738956 + - + - 7.42583 + - 43.739017 + - + - 7.425776 + - 43.739098 + - + - 7.425771 + - 43.739197 + - + - 7.425814 + - 43.73932 + - + - 7.425771 + - 43.73942 + - + - 7.425685 + - 43.739525 + - + - 7.425154 + - 43.73971 + - + - 7.425562 + - 43.740387 + - + - 7.425765 + - 43.7407 + - + - 7.425883 + - 43.740875 + - + - 7.426023 + - 43.741028 + - + - 7.426329 + - 43.741234 + - + - 7.426538 + - 43.74138 + - + - 7.426736 + - 43.741535 + - + - 7.426822 + - 43.74154 + - + - 7.426908 + - 43.74159 + - + - 7.426895 + - 43.741665 + - + - 7.427034 + - 43.74174 + - + - 7.427466 + - 43.742035 + - + - 7.427699 + - 43.742188 + - + - 7.427799 + - 43.742268 + - + - 7.427908 + - 43.74236 + - + - 7.428187 + - 43.7429 + - + - 7.428544 + - 43.743557 + - + - 7.42892 + - 43.744236 + - + - 7.429225 + - 43.74491 + - + - 7.429504 + - 43.74551 + - + - 7.429751 + - 43.74569 + - + - 7.429939 + - 43.745804 + - + - 7.430121 + - 43.74594 + - + - 7.430202 + - 43.746082 + - + - 7.430239 + - 43.746162 + - + - 7.43062 + - 43.746452 + - + - 7.431017 + - 43.74667 + - + - 7.431371 + - 43.746925 + - + - 7.431682 + - 43.747177 + - + - 7.431763 + - 43.7473 + - + - 7.431763 + - 43.747467 + - + - 7.431731 + - 43.747578 + - + - 7.431822 + - 43.747734 + - + - 7.432031 + - 43.747807 + - + - 7.432246 + - 43.747856 + - + - 7.432525 + - 43.747852 + - + - 7.432809 + - 43.747955 + - + - 7.433152 + - 43.748158 + - + - 7.43341 + - 43.748363 + - + - 7.43401 + - 43.748726 + - + - 7.434322 + - 43.748905 + - + - 7.434671 + - 43.749058 + - + - 7.435019 + - 43.74907 + - + - 7.435373 + - 43.749073 + - + - 7.435818 + - 43.74906 + - + - 7.436028 + - 43.749104 + - + - 7.43621 + - 43.749184 + - + - 7.436376 + - 43.749287 + - + - 7.43651 + - 43.749416 + - + - 7.43709 + - 43.749954 + - + - 7.437347 + - 43.750195 + - + - 7.437589 + - 43.75045 + - + - 7.437841 + - 43.75071 + - + - 7.43812 + - 43.751137 + - + - 7.438431 + - 43.751614 + - + - 7.438881 + - 43.751606 + - + - 7.439327 + - 43.75162 + - + - 7.439826 + - 43.751553 + - + - 7.44004 + - 43.751488 + - + - 7.440137 + - 43.751392 + - + - 7.440062 + - 43.751163 + - + - 7.439842 + - 43.75103 + - + - 7.43952 + - 43.750824 + - + - 7.439203 + - 43.750637 + - + - 7.439219 + - 43.750423 + - + - 7.439364 + - 43.750286 + - + - 7.439616 + - 43.75027 + - + - 7.440062 + - 43.750523 + - + - 7.440443 + - 43.750797 + - + - 7.440115 + - 43.750893 + - + - 7.439836 + - 43.75065 + - + - 7.439289 + - 43.75024 + - + - 7.438694 + - 43.749947 + - + - 7.43732 + - 43.749363 + - + - 7.435936 + - 43.74877 + - + - 7.435287 + - 43.74844 + - + - 7.433453 + - 43.747387 + - + - 7.432712 + - 43.74694 + - + - 7.431956 + - 43.746502 + - + - 7.431586 + - 43.74628 + - + - 7.431216 + - 43.746056 + - + - 7.430974 + - 43.745815 + - + - 7.430792 + - 43.7456 + - + - 7.430679 + - 43.745537 + - + - 7.430668 + - 43.74546 + - + - 7.430674 + - 43.745377 + - + - 7.43069 + - 43.74523 + - + - 7.43062 + - 43.745117 + - + - 7.43041 + - 43.744785 + - + - 7.430306 + - 43.744625 + - + - 7.430225 + - 43.74446 + - + - 7.430192 + - 43.744396 + - + - 7.430144 + - 43.74434 + - + - 7.429972 + - 43.744175 + - + - 7.429881 + - 43.743988 + - + - 7.429728 + - 43.743587 + - + - 7.429689 + - 43.743484 + - + - 7.429671 + - 43.743435 + - + - 7.429656 + - 43.743385 + - + - 7.429612 + - 43.743202 + - + - 7.429592 + - 43.743034 + - + - 7.429584 + - 43.742874 + - + - 7.429596 + - 43.742657 + - + - 7.429612 + - 43.742485 + - + - 7.429639 + - 43.74218 + - + - 7.429783 + - 43.741016 + - + - 7.429848 + - 43.740414 + - + - 7.429872 + - 43.740257 + - + - 7.429858 + - 43.740124 + - + - 7.429791 + - 43.739834 + - + - 7.42971 + - 43.739548 + - + - 7.429573 + - 43.73925 + - + - 7.429385 + - 43.73896 + - + - 7.42915 + - 43.738686 + - + - 7.429027 + - 43.738552 + - + - 7.428953 + - 43.738483 + - + - 7.428917 + - 43.73845 + - + - 7.428875 + - 43.738422 + - + - 7.428521 + - 43.738182 + - + - 7.428061 + - 43.73796 + - + - 7.427626 + - 43.737766 + - + - 7.427324 + - 43.737656 + - + - 7.427005 + - 43.737576 + - + - 7.426667 + - 43.737507 + - + - 7.426342 + - 43.737473 + - + - 7.42602 + - 43.737442 + - + - 7.42571 + - 43.737434 + - + - 7.425395 + - 43.737434 + - + - 7.42384 + - 43.73755 + - + - 7.423571 + - 43.73761 + - + - 7.423247 + - 43.737644 + - + - 7.42289 + - 43.737667 + - + - 7.422737 + - 43.737656 + - + - 7.422659 + - 43.737644 + - + - 7.42259 + - 43.737625 + - + - 7.422582 + - 43.7376 + - + - 7.422584 + - 43.737576 + - + - 7.422598 + - 43.73753 + - + - 7.422646 + - 43.7375 + - + - 7.422814 + - 43.737434 + - + - 7.423523 + - 43.737408 + - + - 7.423972 + - 43.737442 + - + - 7.424034 + - 43.73743 + - + - 7.424064 + - 43.73741 + - + - 7.424055 + - 43.737385 + - + - 7.424038 + - 43.737366 + - + - 7.423644 + - 43.73728 + - + - 7.423225 + - 43.73719 + - + - 7.422795 + - 43.73711 + - + - 7.422332 + - 43.737053 + - + - 7.422099 + - 43.73703 + - + - 7.421981 + - 43.73701 + - + - 7.421785 + - 43.737007 + - + - 7.421583 + - 43.736977 + - + - 7.421478 + - 43.736946 + - + - 7.421381 + - 43.7369 + - + - 7.421202 + - 43.7368 + - + - 7.421065 + - 43.736702 + - + - 7.421003 + - 43.73664 + - + - 7.420967 + - 43.736614 + - + - 7.420598 + - 43.736317 + - + - 7.420181 + - 43.73597 + - + - 7.420098 + - 43.7359 + - + - 7.420028 + - 43.735836 + - + - 7.419874 + - 43.735687 + - + - 7.419729 + - 43.73555 + - + - 7.419451 + - 43.735283 + - + - 7.419311 + - 43.735146 + - + - 7.419177 + - 43.735004 + - + - 7.418924 + - 43.73472 + - + - 7.418668 + - 43.734436 + - + - 7.418515 + - 43.73424 + - + - 7.41849 + - 43.734142 + - + - 7.41851 + - 43.73403 + - + - 7.418537 + - 43.733932 + - + - 7.418588 + - 43.733727 + - + - 7.418687 + - 43.73334 + - + - 7.418813 + - 43.732906 + - + - 7.418915 + - 43.73265 + - + - 7.418904 + - 43.732555 + - + - 7.418859 + - 43.732525 + - + - 7.418795 + - 43.73252 + - + - 7.418462 + - 43.732613 + - + - 7.418294 + - 43.73266 + - + - 7.418215 + - 43.73269 + - + - 7.41814 + - 43.73272 + - + - 7.417854 + - 43.732807 + - + - 7.41764 + - 43.732853 + - + - 7.417487 + - 43.732895 + - + - 7.417425 + - 43.732925 + - + - 7.417377 + - 43.732986 + - + - 7.417373 + - 43.733036 + - + - 7.4174 + - 43.7331 + - + - 7.417593 + - 43.733456 + - + - 7.417621 + - 43.733547 + - + - 7.417609 + - 43.733665 + - + - 7.417566 + - 43.733784 + - + - 7.417477 + - 43.733948 + - + - 7.417422 + - 43.73416 + - + - 7.417394 + - 43.7342 + - + - 7.417331 + - 43.734238 + - + - 7.417137 + - 43.73429 + - + - 7.417091 + - 43.734406 + - + - 7.417072 + - 43.73461 + - + - 7.41707 + - 43.734833 + - + - 7.417106 + - 43.735027 + - + - 7.417174 + - 43.735165 + - + - 7.417213 + - 43.735237 + - + - 7.417265 + - 43.735313 + - + - 7.417349 + - 43.735413 + - + - 7.417468 + - 43.735542 + - + - 7.417709 + - 43.735783 + - + - 7.417825 + - 43.735874 + - + - 7.417894 + - 43.735916 + - + - 7.417971 + - 43.735947 + - + - 7.418423 + - 43.736076 + - + - 7.418604 + - 43.736122 + - + - 7.418683 + - 43.736156 + - + - 7.418759 + - 43.7362 + - + - 7.419186 + - 43.736515 + - + - 7.419429 + - 43.736725 + - + - 7.419634 + - 43.736874 + - + - 7.41982 + - 43.737015 + - + - 7.419993 + - 43.737167 + - + - 7.420052 + - 43.73722 + - + - 7.420099 + - 43.737286 + - + - 7.42013 + - 43.737335 + - + - 7.420121 + - 43.737442 + - + - 7.420076 + - 43.73754 + - + - 7.420024 + - 43.73758 + - + - 7.419942 + - 43.737614 + - + - 7.419759 + - 43.737682 + - + - 7.419337 + - 43.737827 + - + - 7.419228 + - 43.7379 + - + - 7.419127 + - 43.737995 + - + - 7.419092 + - 43.738087 + - + - 7.419126 + - 43.738163 + - + - 7.419173 + - 43.738186 + - + - 7.419261 + - 43.73819 + - + - 7.419348 + - 43.738174 + - + - 7.419405 + - 43.73811 + - + - 7.419454 + - 43.737915 + - + - 7.419511 + - 43.737743 + - + - 7.419544 + - 43.737705 + - + - 7.419611 + - 43.737644 + - + - 7.419867 + - 43.73755 + - + - 7.419964 + - 43.737514 + - + - 7.420028 + - 43.73747 + - + - 7.420036 + - 43.737423 + - + - 7.420034 + - 43.73738 + - + - 7.420013 + - 43.737335 + - + - 7.41998 + - 43.737293 + - + - 7.419899 + - 43.73722 + - + - 7.419673 + - 43.73708 + - + - 7.419535 + - 43.73704 + - + - 7.419489 + - 43.737026 + - + - 7.419434 + - 43.73703 + - + - 7.419327 + - 43.737045 + - + - 7.41915 + - 43.73712 + - + - 7.419123 + - 43.737137 + - + - 7.41913 + - 43.73716 + - + - 7.41912 + - 43.73719 + - + - 7.419033 + - 43.73725 + - + - 7.41893 + - 43.73732 + - + - 7.418659 + - 43.73749 + - + - 7.418499 + - 43.73756 + - + - 7.418411 + - 43.737583 + - + - 7.41831 + - 43.7376 + - + - 7.418235 + - 43.73759 + - + - 7.418163 + - 43.73757 + - + - 7.418037 + - 43.737507 + - + - 7.417955 + - 43.73744 + - + - 7.417869 + - 43.73738 + - + - 7.417664 + - 43.737312 + - + - 7.417506 + - 43.737274 + - + - 7.417401 + - 43.73726 + - + - 7.417366 + - 43.737236 + - + - 7.417346 + - 43.737206 + - + - 7.417345 + - 43.73717 + - + - 7.417311 + - 43.737103 + - + - 7.417304 + - 43.737064 + - + - 7.417295 + - 43.737045 + - + - 7.41729 + - 43.737022 + - + - 7.417276 + - 43.736973 + - + - 7.417247 + - 43.736935 + - + - 7.417186 + - 43.736893 + - + - 7.416992 + - 43.73685 + - + - 7.416886 + - 43.73682 + - + - 7.416842 + - 43.736797 + - + - 7.41681 + - 43.73677 + - + - 7.416771 + - 43.73672 + - + - 7.416749 + - 43.736668 + - + - 7.416704 + - 43.736313 + - + - 7.416675 + - 43.736084 + - + - 7.416665 + - 43.735966 + - + - 7.416665 + - 43.735855 + - + - 7.416615 + - 43.73581 + - + - 7.416623 + - 43.73574 + - + - 7.416591 + - 43.73564 + - + - 7.416561 + - 43.735546 + - + - 7.416504 + - 43.735416 + - + - 7.41637 + - 43.73514 + - + - 7.41632 + - 43.734993 + - + - 7.416289 + - 43.73486 + - + - 7.416272 + - 43.73474 + - + - 7.416262 + - 43.73462 + - + - 7.416245 + - 43.734394 + - + - 7.416225 + - 43.734295 + - + - 7.416201 + - 43.734203 + - + - 7.416174 + - 43.734142 + - + - 7.416138 + - 43.73409 + - + - 7.416054 + - 43.733955 + - + - 7.41599 + - 43.733894 + - + - 7.415801 + - 43.733715 + - + - 7.415393 + - 43.733383 + - + - 7.415356 + - 43.733337 + - + - 7.415299 + - 43.73332 + - + - 7.415204 + - 43.733276 + - + - 7.41514 + - 43.73322 + - + - 7.415098 + - 43.733154 + - + - 7.415077 + - 43.733097 + - + - 7.414878 + - 43.732937 + - + - 7.414619 + - 43.73273 + - + - 7.414414 + - 43.73253 + - + - 7.414343 + - 43.73237 + - + - 7.4143 + - 43.73213 + - + - 7.414363 + - 43.731937 + - + - 7.414526 + - 43.731796 + - + - 7.414589 + - 43.73177 + - + - 7.414902 + - 43.73153 + - + - 7.415022 + - 43.73144 + - + - 7.415058 + - 43.73137 + - + - 7.415065 + - 43.731266 + - + - 7.415031 + - 43.731213 + - + - 7.414972 + - 43.73117 + - + - 7.414802 + - 43.731125 + - + - 7.414583 + - 43.7311 + - + - 7.414045 + - 43.731014 + - + - 7.413182 + - 43.730873 + - + - 7.413132 + - 43.730865 + - + - 7.413081 + - 43.730846 + - + - 7.412977 + - 43.73082 + - + - 7.412864 + - 43.73075 + - + - 7.412629 + - 43.730595 + - + - 7.41271 + - 43.730377 + - + - 7.412778 + - 43.72999 + - + - 7.412793 + - 43.729607 + - + - 7.412826 + - 43.72954 + - + - 7.412839 + - 43.72948 + - + - 7.412739 + - 43.729347 + - + - 7.412632 + - 43.729225 + - + - 7.412401 + - 43.728916 + - + - 7.412397 + - 43.72874 + - + - 7.412365 + - 43.728737 + - + - 7.412332 + - 43.72873 + - + - 7.412307 + - 43.72871 + - + - 7.412295 + - 43.728676 + eopMode: LOOP + velocity: 20 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-car + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A640001 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: f32f0c05-4491-4a93-be0c-19420d4407f0 + name: 4g-macro-cell-3 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '3030303' + geoData: + location: + type: Point + coordinates: + - 7.416715 + - 43.733616 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: 0ca4bfcc-7346-4f57-9c85-bb92642ec37e + name: 10.1.0.2 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.4187 + - 43.732403 + radius: null + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-ios-videocam + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A010002 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: 37be6821-a5f3-4af9-af0a-ceff4c0f66be + name: 5g-small-cell-1 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '101010101' + geoData: + location: + type: Point + coordinates: + - 7.415385 + - 43.730846 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: ab60918a-acd8-4f4e-9693-d2fbffae9b72 + name: 5g-small-cell-2 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '202020202' + geoData: + location: + type: Point + coordinates: + - 7.416962 + - 43.731453 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: de2d952d-11b1-4294-8a67-6d994f1a5f37 + name: 5g-small-cell-3 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '303030303' + geoData: + location: + type: Point + coordinates: + - 7.417023 + - 43.733227 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 9bd631b3-44f5-4f92-ad1a-d50c9c3e869d + name: 5g-small-cell-4 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '04040404' + geoData: + location: + type: Point + coordinates: + - 7.417173 + - 43.72764 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + interFogLatency: null + interFogLatencyVariation: null + interFogThroughput: null + interFogPacketLoss: null + interEdgeLatency: null + interEdgeLatencyVariation: null + interEdgeThroughput: null + interEdgePacketLoss: null + edgeFogLatency: null + edgeFogLatencyVariation: null + edgeFogThroughput: null + edgeFogPacketLoss: null + userMeta: null + - + id: 4c3c9568-6408-4900-9d97-4556f6d805db + name: zone02 + type: ZONE + netChar: + latency: 5 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + meta: + display.map.color: darkred + networkLocations: + - + id: zone02-DEFAULT + name: zone02-DEFAULT + type: DEFAULT + netChar: + latency: 1 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poa5GConfig: null + poaWifiConfig: null + geoData: null + physicalLocations: null + - + id: 78327873-c828-47da-8a5b-3c74d251dbbc + name: 4g-macro-cell-4 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '4040404' + geoData: + location: + type: Point + coordinates: + - 7.423547 + - 43.731724 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: 67a40b8b-5777-4e96-a896-8622af4a741f + name: 10.100.0.3 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.427423 + - 43.731323 + path: + type: LineString + coordinates: + - + - 7.427423 + - 43.731323 + - + - 7.427463 + - 43.73143 + - + - 7.427455 + - 43.731537 + - + - 7.427423 + - 43.731598 + - + - 7.427439 + - 43.731667 + - + - 7.427479 + - 43.731766 + - + - 7.427951 + - 43.73259 + - + - 7.427989 + - 43.732677 + - + - 7.427962 + - 43.73281 + - + - 7.427852 + - 43.732925 + - + - 7.427655 + - 43.732994 + - + - 7.427556 + - 43.733 + - + - 7.425453 + - 43.73256 + - + - 7.42436 + - 43.7323 + - + - 7.424033 + - 43.732254 + - + - 7.423397 + - 43.73226 + - + - 7.422675 + - 43.73218 + - + - 7.422588 + - 43.7322 + - + - 7.42249 + - 43.732243 + - + - 7.422382 + - 43.732323 + - + - 7.422415 + - 43.73246 + - + - 7.422351 + - 43.73269 + - + - 7.422257 + - 43.73279 + - + - 7.4221 + - 43.73293 + - + - 7.421912 + - 43.733208 + - + - 7.421604 + - 43.733833 + - + - 7.421522 + - 43.734016 + - + - 7.421377 + - 43.73445 + - + - 7.421289 + - 43.73488 + - + - 7.421232 + - 43.735355 + - + - 7.421211 + - 43.73588 + - + - 7.421291 + - 43.73624 + - + - 7.421447 + - 43.736584 + - + - 7.421576 + - 43.73678 + - + - 7.4216 + - 43.7368 + - + - 7.421723 + - 43.73684 + - + - 7.424054 + - 43.73709 + - + - 7.424611 + - 43.737144 + - + - 7.424942 + - 43.73719 + - + - 7.425462 + - 43.737217 + - + - 7.426063 + - 43.737286 + - + - 7.426653 + - 43.737366 + - + - 7.427215 + - 43.73749 + - + - 7.427498 + - 43.737583 + - + - 7.427762 + - 43.73765 + - + - 7.42799 + - 43.737732 + - + - 7.428867 + - 43.738125 + - + - 7.429136 + - 43.73831 + - + - 7.429626 + - 43.738724 + - + - 7.429853 + - 43.73897 + - + - 7.430023 + - 43.739243 + - + - 7.430125 + - 43.7395 + - + - 7.430301 + - 43.740196 + - + - 7.430422 + - 43.741196 + - + - 7.430411 + - 43.741318 + - + - 7.430493 + - 43.741344 + - + - 7.430568 + - 43.741417 + - + - 7.430773 + - 43.74177 + eopMode: REVERSE + velocity: 20 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-car + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A640003 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: ca3b5b42-0e99-4553-9d19-4696cd8fe469 + name: 4g-macro-cell-5 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '5050505' + geoData: + location: + type: Point + coordinates: + - 7.429257 + - 43.73411 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: c18e3f93-79c4-427d-af91-81996adab3e7 + name: 10.1.0.3 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.426565 + - 43.73298 + radius: null + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-ios-videocam + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A010003 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + - + id: 1d2683f4-086e-47d6-abbb-07fa481a25fb + name: 10.10.0.1 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.43166 + - 43.736156 + path: + type: LineString + coordinates: + - + - 7.43166 + - 43.736156 + - + - 7.431723 + - 43.736115 + - + - 7.431162 + - 43.735607 + - + - 7.430685 + - 43.73518 + - + - 7.43043 + - 43.73532 + - + - 7.429067 + - 43.734108 + - + - 7.428863 + - 43.734184 + - + - 7.428388 + - 43.734116 + - + - 7.427817 + - 43.73446 + - + - 7.427689 + - 43.734917 + - + - 7.427581 + - 43.73499 + - + - 7.427308 + - 43.734955 + - + - 7.42723 + - 43.734844 + - + - 7.427281 + - 43.734646 + - + - 7.427411 + - 43.734657 + - + - 7.427709 + - 43.73362 + - + - 7.424581 + - 43.732964 + - + - 7.424312 + - 43.73363 + - + - 7.424512 + - 43.73368 + - + - 7.424534 + - 43.733707 + - + - 7.424534 + - 43.73373 + - + - 7.424477 + - 43.733753 + - + - 7.42423 + - 43.73371 + - + - 7.424029 + - 43.733665 + - + - 7.423999 + - 43.733624 + - + - 7.424058 + - 43.73358 + - + - 7.424246 + - 43.733624 + - + - 7.424522 + - 43.732952 + - + - 7.423748 + - 43.73279 + - + - 7.423545 + - 43.733307 + - + - 7.423508 + - 43.7333 + - + - 7.423535 + - 43.73324 + - + - 7.423668 + - 43.732857 + - + - 7.423455 + - 43.73282 + - + - 7.423356 + - 43.73307 + - + - 7.423199 + - 43.733135 + - + - 7.423043 + - 43.73321 + - + - 7.422855 + - 43.73337 + - + - 7.422744 + - 43.733517 + - + - 7.422694 + - 43.733624 + - + - 7.422659 + - 43.73374 + - + - 7.422578 + - 43.734074 + - + - 7.422604 + - 43.734188 + - + - 7.422541 + - 43.734425 + - + - 7.422509 + - 43.73456 + - + - 7.422697 + - 43.73458 + - + - 7.422847 + - 43.734077 + - + - 7.422881 + - 43.73408 + - + - 7.422756 + - 43.73459 + - + - 7.423254 + - 43.73466 + - + - 7.423413 + - 43.73412 + - + - 7.423512 + - 43.73413 + - + - 7.423351 + - 43.734753 + - + - 7.42326 + - 43.73506 + - + - 7.423223 + - 43.73522 + - + - 7.423173 + - 43.735416 + - + - 7.423072 + - 43.7354 + - + - 7.4232 + - 43.734898 + - + - 7.423191 + - 43.734848 + - + - 7.422693 + - 43.734776 + - + - 7.42256 + - 43.7353 + - + - 7.422513 + - 43.73529 + - + - 7.422655 + - 43.734776 + - + - 7.422423 + - 43.734737 + - + - 7.422299 + - 43.735203 + - + - 7.422233 + - 43.735435 + - + - 7.42215 + - 43.735508 + - + - 7.422032 + - 43.735546 + - + - 7.421888 + - 43.735535 + - + - 7.421866 + - 43.735683 + - + - 7.421872 + - 43.735928 + - + - 7.421975 + - 43.736275 + - + - 7.422107 + - 43.73651 + - + - 7.422269 + - 43.73673 + - + - 7.42493 + - 43.737007 + - + - 7.425109 + - 43.73692 + - + - 7.425631 + - 43.736973 + - + - 7.425674 + - 43.736706 + - + - 7.425721 + - 43.736477 + - + - 7.425736 + - 43.736366 + - + - 7.425787 + - 43.736378 + - + - 7.425655 + - 43.737087 + - + - 7.426748 + - 43.73719 + - + - 7.426931 + - 43.736523 + - + - 7.427054 + - 43.736073 + - + - 7.427052 + - 43.73606 + - + - 7.427027 + - 43.736053 + - + - 7.426908 + - 43.73604 + - + - 7.426963 + - 43.73584 + - + - 7.427089 + - 43.73575 + - + - 7.427368 + - 43.735783 + - + - 7.427427 + - 43.735886 + - + - 7.427096 + - 43.737133 + - + - 7.429107 + - 43.73754 + - + - 7.429795 + - 43.736343 + eopMode: REVERSE + velocity: 9 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-walk + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A0A0001 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + - + id: ec32caa6-ddc6-4f5e-a815-654782b31abb + name: 10.100.0.2 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.427394 + - 43.73243 + path: + type: LineString + coordinates: + - + - 7.427394 + - 43.73243 + - + - 7.427393 + - 43.732353 + - + - 7.427373 + - 43.732296 + - + - 7.427259 + - 43.73213 + - + - 7.427153 + - 43.73204 + - + - 7.42705 + - 43.73197 + - + - 7.426688 + - 43.73188 + - + - 7.426318 + - 43.731792 + - + - 7.425634 + - 43.731598 + - + - 7.425535 + - 43.731598 + - + - 7.425433 + - 43.73161 + - + - 7.425336 + - 43.73161 + - + - 7.425151 + - 43.731556 + - + - 7.424628 + - 43.73141 + - + - 7.424135 + - 43.731285 + - + - 7.423933 + - 43.73179 + - + - 7.423861 + - 43.731827 + - + - 7.423566 + - 43.73177 + - + - 7.423389 + - 43.731663 + - + - 7.423225 + - 43.73154 + - + - 7.422997 + - 43.731396 + - + - 7.422858 + - 43.731335 + - + - 7.422794 + - 43.731304 + - + - 7.422718 + - 43.731285 + - + - 7.422579 + - 43.731262 + - + - 7.422418 + - 43.731255 + - + - 7.422195 + - 43.731262 + - + - 7.421973 + - 43.731285 + - + - 7.421833 + - 43.731297 + - + - 7.421705 + - 43.73133 + - + - 7.421624 + - 43.731327 + - + - 7.421565 + - 43.731323 + - + - 7.421501 + - 43.731297 + - + - 7.421483 + - 43.731228 + - + - 7.421468 + - 43.73116 + - + - 7.421443 + - 43.73103 + - + - 7.421409 + - 43.73089 + - + - 7.421372 + - 43.73075 + - + - 7.421435 + - 43.730694 + - + - 7.421506 + - 43.730682 + - + - 7.421731 + - 43.73061 + - + - 7.421821 + - 43.73055 + - + - 7.421992 + - 43.730377 + - + - 7.42217 + - 43.730206 + - + - 7.422477 + - 43.729942 + - + - 7.422555 + - 43.729897 + - + - 7.422657 + - 43.729866 + - + - 7.422801 + - 43.729847 + - + - 7.422969 + - 43.729862 + - + - 7.423137 + - 43.72991 + - + - 7.423295 + - 43.72997 + - + - 7.423507 + - 43.73005 + - + - 7.423712 + - 43.730137 + - + - 7.42411 + - 43.73032 + - + - 7.424566 + - 43.730526 + - + - 7.424802 + - 43.730633 + - + - 7.42501 + - 43.730743 + - + - 7.425791 + - 43.731174 + - + - 7.426482 + - 43.73159 + - + - 7.426963 + - 43.731895 + - + - 7.427077 + - 43.731968 + - + - 7.427186 + - 43.732048 + - + - 7.42729 + - 43.73213 + - + - 7.427362 + - 43.732227 + - + - 7.427418 + - 43.732353 + - + - 7.427415 + - 43.732384 + - + - 7.427411 + - 43.732407 + - + - 7.427394 + - 43.73243 + - + - 7.427383 + - 43.732483 + - + - 7.427288 + - 43.732548 + - + - 7.427203 + - 43.73256 + - + - 7.427085 + - 43.732555 + - + - 7.426884 + - 43.732517 + - + - 7.425842 + - 43.73234 + - + - 7.424798 + - 43.732162 + - + - 7.424667 + - 43.73214 + - + - 7.42444 + - 43.7321 + - + - 7.424072 + - 43.732044 + - + - 7.423361 + - 43.731934 + - + - 7.423054 + - 43.7319 + - + - 7.42274 + - 43.731876 + - + - 7.422414 + - 43.73187 + - + - 7.422089 + - 43.731876 + - + - 7.421887 + - 43.731884 + - + - 7.421699 + - 43.731895 + - + - 7.421429 + - 43.731926 + - + - 7.421102 + - 43.73198 + - + - 7.420582 + - 43.732067 + - + - 7.420058 + - 43.732174 + - + - 7.419941 + - 43.7322 + - + - 7.419804 + - 43.732254 + - + - 7.419237 + - 43.732403 + - + - 7.419181 + - 43.732418 + - + - 7.419127 + - 43.73245 + - + - 7.419071 + - 43.73248 + - + - 7.419063 + - 43.732513 + - + - 7.419017 + - 43.732548 + - + - 7.418957 + - 43.73256 + - + - 7.418904 + - 43.732555 + - + - 7.418859 + - 43.732525 + - + - 7.418795 + - 43.73252 + - + - 7.418733 + - 43.732536 + - + - 7.418541 + - 43.73259 + - + - 7.418358 + - 43.732643 + - + - 7.418179 + - 43.732704 + - + - 7.417854 + - 43.732807 + - + - 7.417669 + - 43.732845 + - + - 7.417487 + - 43.732895 + - + - 7.417425 + - 43.732925 + - + - 7.417405 + - 43.73295 + - + - 7.417605 + - 43.73323 + - + - 7.417778 + - 43.733547 + - + - 7.417915 + - 43.733955 + - + - 7.41809 + - 43.734455 + - + - 7.418133 + - 43.734684 + - + - 7.418188 + - 43.7349 + - + - 7.418289 + - 43.735046 + - + - 7.4184 + - 43.735184 + - + - 7.418585 + - 43.735382 + - + - 7.418671 + - 43.735455 + - + - 7.418768 + - 43.73552 + - + - 7.419179 + - 43.735825 + - + - 7.419366 + - 43.73598 + - + - 7.419533 + - 43.73615 + - + - 7.419881 + - 43.736473 + - + - 7.420241 + - 43.736786 + - + - 7.420468 + - 43.73692 + - + - 7.420685 + - 43.73703 + - + - 7.420944 + - 43.73716 + - + - 7.421228 + - 43.737274 + - + - 7.421522 + - 43.737373 + - + - 7.421826 + - 43.73747 + - + - 7.422055 + - 43.73752 + - + - 7.422283 + - 43.73756 + - + - 7.422403 + - 43.73758 + - + - 7.422472 + - 43.737526 + - + - 7.422561 + - 43.737473 + - + - 7.422688 + - 43.737442 + - + - 7.422814 + - 43.737434 + - + - 7.423132 + - 43.737423 + - + - 7.423523 + - 43.737408 + - + - 7.423972 + - 43.737442 + - + - 7.424034 + - 43.73743 + - + - 7.424064 + - 43.73741 + - + - 7.424055 + - 43.737385 + - + - 7.424028 + - 43.73735 + - + - 7.423706 + - 43.737286 + - + - 7.423228 + - 43.737183 + - + - 7.422826 + - 43.737103 + - + - 7.42263 + - 43.737076 + - + - 7.422426 + - 43.737053 + - + - 7.42209 + - 43.73702 + - + - 7.421949 + - 43.73701 + - + - 7.421754 + - 43.737003 + - + - 7.421639 + - 43.736984 + - + - 7.421527 + - 43.73696 + - + - 7.421421 + - 43.73692 + - + - 7.421323 + - 43.73687 + - + - 7.421228 + - 43.736813 + - + - 7.421133 + - 43.73675 + - + - 7.421065 + - 43.736702 + - + - 7.421003 + - 43.73664 + - + - 7.420847 + - 43.73652 + - + - 7.420513 + - 43.736244 + - + - 7.420098 + - 43.7359 + - + - 7.419858 + - 43.735672 + - + - 7.41939 + - 43.73522 + - + - 7.41916 + - 43.734985 + - + - 7.418728 + - 43.734505 + - + - 7.418581 + - 43.734325 + - + - 7.418515 + - 43.73424 + - + - 7.41849 + - 43.734142 + - + - 7.418601 + - 43.733677 + - + - 7.418681 + - 43.73336 + - + - 7.418772 + - 43.733047 + - + - 7.418813 + - 43.732906 + - + - 7.418878 + - 43.732742 + - + - 7.418915 + - 43.73265 + - + - 7.41891 + - 43.732605 + - + - 7.418904 + - 43.732555 + - + - 7.418859 + - 43.732525 + - + - 7.418849 + - 43.73247 + - + - 7.418872 + - 43.732426 + - + - 7.418902 + - 43.73241 + - + - 7.418951 + - 43.732403 + - + - 7.419008 + - 43.732403 + - + - 7.419118 + - 43.73241 + - + - 7.419225 + - 43.73239 + - + - 7.4198 + - 43.73224 + - + - 7.419934 + - 43.732185 + - + - 7.420066 + - 43.73216 + - + - 7.420587 + - 43.73205 + - + - 7.421116 + - 43.73196 + - + - 7.421403 + - 43.73192 + - + - 7.421688 + - 43.731884 + - + - 7.422084 + - 43.73186 + - + - 7.422473 + - 43.731853 + - + - 7.422827 + - 43.73187 + - + - 7.42319 + - 43.731903 + - + - 7.423363 + - 43.731922 + - + - 7.423535 + - 43.73195 + - + - 7.423881 + - 43.732002 + - + - 7.425014 + - 43.73219 + - + - 7.425588 + - 43.73229 + - + - 7.426168 + - 43.732388 + - + - 7.426901 + - 43.732506 + - + - 7.427068 + - 43.732536 + - + - 7.427147 + - 43.732548 + - + - 7.427227 + - 43.732548 + - + - 7.427279 + - 43.732533 + - + - 7.427352 + - 43.73249 + - + - 7.427394 + - 43.73243 + eopMode: LOOP + velocity: 20 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-car + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A640002 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: bddd61c9-6ddd-4f7e-9082-0d004fced7ab + name: 5g-small-cell-5 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '505050505' + geoData: + location: + type: Point + coordinates: + - 7.420653 + - 43.731743 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 8e0dad0d-72c9-4b6d-850b-06b02243b1d3 + name: 5g-small-cell-6 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '606060606' + geoData: + location: + type: Point + coordinates: + - 7.421865 + - 43.733368 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 7d3688cc-0dda-48b1-a171-b817c176e053 + name: 5g-small-cell-7 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '808080808' + geoData: + location: + type: Point + coordinates: + - 7.42509 + - 43.73189 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 91691048-64bb-4d2f-917f-4219a95881c0 + name: 5g-small-cell-8 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '909090909' + geoData: + location: + type: Point + coordinates: + - 7.42704 + - 43.732407 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + interFogLatency: null + interFogLatencyVariation: null + interFogThroughput: null + interFogPacketLoss: null + interEdgeLatency: null + interEdgeLatencyVariation: null + interEdgeThroughput: null + interEdgePacketLoss: null + edgeFogLatency: null + edgeFogLatencyVariation: null + edgeFogThroughput: null + edgeFogPacketLoss: null + userMeta: null + - + id: 472c9927-800a-46e9-9d62-d08b09080dd5 + name: zone03 + type: ZONE + netChar: + latency: 5 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + meta: + display.map.color: darkorange + networkLocations: + - + id: zone03-DEFAULT + name: zone03-DEFAULT + type: DEFAULT + netChar: + latency: 1 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poa5GConfig: null + poaWifiConfig: null + geoData: null + physicalLocations: null + - + id: e4ce8267-5433-4b2b-aa5a-9a40de76b685 + name: 4g-macro-cell-6 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '6060606' + geoData: + location: + type: Point + coordinates: + - 7.421007 + - 43.737087 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: c3bc8d8d-170b-45bb-93a9-8ce658571321 + name: 10.1.0.1 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.421802 + - 43.736515 + radius: null + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-ios-videocam + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A010001 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: 663df9f0-57af-43aa-ba2e-e45a4b2f3c28 + name: 4g-macro-cell-7 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '7070707' + geoData: + location: + type: Point + coordinates: + - 7.425841 + - 43.739426 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: a3067167-cdaf-4264-9e32-abfc0ede0564 + name: 5g-small-cell-10 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: 0A0A0A0A + geoData: + location: + type: Point + coordinates: + - 7.426598 + - 43.73844 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 2c2ba76c-8880-4c5b-a949-a161713910f4 + name: 5g-small-cell-11 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: 0B0B0B0B + geoData: + location: + type: Point + coordinates: + - 7.428264 + - 43.73876 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: d9ca5e58-15fe-4161-840f-f3155db3729b + name: 5g-small-cell-12 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: 0C0C0C0C + geoData: + location: + type: Point + coordinates: + - 7.42738 + - 43.739075 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 8414d39b-d3c3-45e1-a235-cf93d211579c + name: 5g-small-cell-9 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '07070707' + geoData: + location: + type: Point + coordinates: + - 7.417394 + - 43.735794 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + interFogLatency: null + interFogLatencyVariation: null + interFogThroughput: null + interFogPacketLoss: null + interEdgeLatency: null + interEdgeLatencyVariation: null + interEdgeThroughput: null + interEdgePacketLoss: null + edgeFogLatency: null + edgeFogLatencyVariation: null + edgeFogThroughput: null + edgeFogPacketLoss: null + userMeta: null + - + id: d56c4e67-0e0f-4456-9431-290de7b674c8 + name: zone04 + type: ZONE + netChar: + latency: 5 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + meta: + display.map.color: limegreen + networkLocations: + - + id: zone04-DEFAULT + name: zone04-DEFAULT + type: DEFAULT + netChar: + latency: 1 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poa5GConfig: null + poaWifiConfig: null + geoData: null + physicalLocations: null + - + id: fc4d9ec8-ebb6-4b5d-a281-bb74af729b4a + name: 4g-macro-cell-8 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '8080808' + geoData: + location: + type: Point + coordinates: + - 7.429504 + - 43.74301 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: b73b3ef5-dba0-44af-a648-bbda7191c249 + name: 4g-macro-cell-9 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: '9090909' + geoData: + location: + type: Point + coordinates: + - 7.432551 + - 43.746544 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: e1d47a4b-0664-4915-81ea-eb0d70af15a7 + name: 4g-macro-cell-10 + type: POA-4G + netChar: + latency: 10 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa4GConfig: + cellId: A0A0A0A + geoData: + location: + type: Point + coordinates: + - 7.437573 + - 43.748993 + radius: 400 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + physicalLocations: + - + id: 4e423f57-daef-4c1c-b30e-45e88e3c9366 + name: 10.1.0.4 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.438248 + - 43.74835 + radius: null + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-ios-videocam + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A010004 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + - + id: 824cf1bf-f91d-44c2-906d-e939fa3339cd + name: 10.10.0.2 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.438755 + - 43.748512 + path: + type: LineString + coordinates: + - + - 7.438755 + - 43.748512 + - + - 7.438267 + - 43.748566 + - + - 7.437795 + - 43.7484 + - + - 7.437684 + - 43.748253 + - + - 7.437555 + - 43.748203 + - + - 7.437341 + - 43.748203 + - + - 7.43673 + - 43.747974 + - + - 7.436623 + - 43.747704 + - + - 7.436237 + - 43.747643 + - + - 7.435969 + - 43.74743 + - + - 7.435841 + - 43.74717 + - + - 7.435504 + - 43.74695 + - + - 7.434829 + - 43.74691 + - + - 7.434293 + - 43.746685 + - + - 7.433882 + - 43.746166 + - + - 7.433431 + - 43.746063 + - + - 7.432831 + - 43.745686 + - + - 7.432585 + - 43.745182 + - + - 7.432767 + - 43.744633 + - + - 7.432552 + - 43.744244 + - + - 7.432617 + - 43.743763 + - + - 7.432305 + - 43.743305 + - + - 7.431682 + - 43.742676 + - + - 7.431136 + - 43.74201 + - + - 7.430524 + - 43.741123 + - + - 7.430432 + - 43.740696 + - + - 7.430382 + - 43.740437 + - + - 7.430384 + - 43.74021 + - + - 7.430288 + - 43.739372 + - + - 7.429773 + - 43.73849 + - + - 7.429976 + - 43.738228 + - + - 7.429654 + - 43.73791 + - + - 7.429371 + - 43.73765 + - + - 7.430027 + - 43.736446 + eopMode: REVERSE + velocity: 9 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-walk + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A0A0002 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + - + id: 097f79f4-bf76-4be0-be28-5acc3bdb0dba + name: 10.100.0.4 + type: UE + geoData: + location: + type: Point + coordinates: + - 7.438357 + - 43.74781 + path: + type: LineString + coordinates: + - + - 7.438357 + - 43.74781 + - + - 7.438296 + - 43.747852 + - + - 7.438229 + - 43.74791 + - + - 7.43813 + - 43.74803 + - + - 7.438074 + - 43.748108 + - + - 7.438025 + - 43.748264 + - + - 7.437991 + - 43.748398 + - + - 7.437937 + - 43.748512 + - + - 7.437883 + - 43.74859 + - + - 7.437741 + - 43.74875 + - + - 7.437593 + - 43.748924 + - + - 7.437481 + - 43.74905 + - + - 7.437416 + - 43.74911 + - + - 7.437419 + - 43.749146 + - + - 7.43739 + - 43.749184 + - + - 7.437339 + - 43.749203 + - + - 7.437285 + - 43.74919 + - + - 7.437256 + - 43.74917 + - + - 7.43555 + - 43.74844 + - + - 7.435097 + - 43.748184 + - + - 7.435008 + - 43.748077 + - + - 7.434885 + - 43.747814 + - + - 7.434788 + - 43.747723 + - + - 7.433391 + - 43.74693 + - + - 7.433243 + - 43.74679 + - + - 7.43301 + - 43.746536 + - + - 7.432804 + - 43.74642 + - + - 7.432353 + - 43.74604 + - + - 7.431985 + - 43.74559 + - + - 7.431216 + - 43.74428 + - + - 7.430556 + - 43.74307 + - + - 7.430336 + - 43.741848 + - + - 7.430226 + - 43.74178 + - + - 7.430038 + - 43.741756 + - + - 7.429864 + - 43.741695 + - + - 7.429766 + - 43.74158 + - + - 7.429731 + - 43.741432 + - + - 7.429797 + - 43.741234 + - + - 7.42986 + - 43.74115 + - + - 7.42995 + - 43.74109 + - + - 7.430094 + - 43.74108 + - + - 7.430255 + - 43.74114 + - + - 7.430392 + - 43.74126 + - + - 7.430475 + - 43.7415 + - + - 7.430642 + - 43.742832 + - + - 7.430717 + - 43.74308 + - + - 7.432086 + - 43.745556 + - + - 7.432441 + - 43.74601 + - + - 7.433179 + - 43.746563 + - + - 7.434716 + - 43.747498 + - + - 7.434871 + - 43.74766 + - + - 7.435108 + - 43.74807 + - + - 7.435305 + - 43.74823 + - + - 7.435923 + - 43.748547 + - + - 7.436871 + - 43.748955 + - + - 7.437138 + - 43.749054 + - + - 7.437248 + - 43.74907 + - + - 7.437368 + - 43.749058 + - + - 7.43747 + - 43.74894 + - + - 7.437652 + - 43.748714 + - + - 7.437765 + - 43.74859 + - + - 7.437835 + - 43.748512 + - + - 7.437883 + - 43.74838 + - + - 7.437918 + - 43.74817 + - + - 7.437931 + - 43.748116 + - + - 7.438001 + - 43.747997 + - + - 7.438098 + - 43.747868 + - + - 7.438138 + - 43.747826 + - + - 7.438159 + - 43.74777 + - + - 7.438159 + - 43.747692 + - + - 7.438173 + - 43.747616 + - + - 7.438205 + - 43.747566 + - + - 7.438264 + - 43.747528 + - + - 7.438347 + - 43.747513 + - + - 7.438443 + - 43.74752 + - + - 7.438505 + - 43.74755 + - + - 7.438548 + - 43.7476 + - + - 7.438569 + - 43.747654 + - + - 7.438545 + - 43.747726 + - + - 7.438494 + - 43.747772 + - + - 7.438431 + - 43.7478 + - + - 7.438357 + - 43.74781 + eopMode: LOOP + velocity: 20 + radius: null + d2dInRange: null + poaInRange: null + wireless: true + wirelessType: 'wifi,5g,4g' + meta: + display.map.icon: ion-android-car + netChar: + latencyDistribution: Normal + throughputDl: 1000 + throughputUl: 1000 + latency: null + latencyVariation: null + throughput: null + packetLoss: null + macId: 005C0A640004 + isExternal: null + networkLocationsInRange: null + connected: null + dataNetwork: null + userMeta: null + processes: null + linkLatency: null + linkLatencyVariation: null + linkThroughput: null + linkPacketLoss: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa5GConfig: null + poaWifiConfig: null + - + id: 3fbf9ec8-3932-455c-8352-0d06b7bb7a15 + name: 5g-small-cell-13 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: 0D0D0D0D + geoData: + location: + type: Point + coordinates: + - 7.431907 + - 43.74543 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 80e3b677-56cb-495c-b798-e19f96d491b9 + name: 5g-small-cell-14 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: 0E0E0E0E + geoData: + location: + type: Point + coordinates: + - 7.431824 + - 43.74787 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: dcb66c87-1854-4c8e-ae88-72b14df9aaff + name: 5g-small-cell-15 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: 0F0F0F0F + geoData: + location: + type: Point + coordinates: + - 7.433529 + - 43.74865 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 10b048d1-2fba-486d-89a0-d1a3191b90b4 + name: 5g-small-cell-16 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '010101010' + geoData: + location: + type: Point + coordinates: + - 7.434421 + - 43.749107 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 35602880-9727-4ed6-8f53-fe0ffab22cb4 + name: 5g-small-cell-17 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '111111111' + geoData: + location: + type: Point + coordinates: + - 7.437487 + - 43.7487 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 4aef0f33-51d2-472c-8441-b5c55f0de626 + name: 5g-small-cell-18 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '212121212' + geoData: + location: + type: Point + coordinates: + - 7.438839 + - 43.749706 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 3396c6ae-28f8-4c8b-ba12-9991bddeed61 + name: 5g-small-cell-19 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '313131313' + geoData: + location: + type: Point + coordinates: + - 7.4371 + - 43.750282 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + - + id: 246f3830-3b56-4359-9452-b17f34426888 + name: 5g-small-cell-20 + type: POA-5G + netChar: + latency: 4 + latencyVariation: 1 + throughputDl: 1000 + throughputUl: 1000 + latencyDistribution: null + throughput: null + packetLoss: null + poa5GConfig: + cellId: '414141414' + geoData: + location: + type: Point + coordinates: + - 7.436006 + - 43.749382 + radius: 100 + path: null + eopMode: null + velocity: null + d2dInRange: null + poaInRange: null + terminalLinkLatency: null + terminalLinkLatencyVariation: null + terminalLinkThroughput: null + terminalLinkPacketLoss: null + meta: null + userMeta: null + cellularPoaConfig: null + poa4GConfig: null + poaWifiConfig: null + physicalLocations: null + interFogLatency: null + interFogLatencyVariation: null + interFogThroughput: null + interFogPacketLoss: null + interEdgeLatency: null + interEdgeLatencyVariation: null + interEdgeThroughput: null + interEdgePacketLoss: null + edgeFogLatency: null + edgeFogLatencyVariation: null + edgeFogThroughput: null + edgeFogPacketLoss: null + userMeta: null + interZoneLatency: null + interZoneLatencyVariation: null + interZoneThroughput: null + interZonePacketLoss: null + meta: null + userMeta: null + interDomainLatency: null + interDomainLatencyVariation: null + interDomainThroughput: null + interDomainPacketLoss: null + meta: null +id: null +description: null +config: null diff --git a/networks/4g-5g-macro-v2x.yaml b/networks/4g-5g-macro-v2x.yaml index f0e0cb272ca7d91528f11bca3da4e8ff2d40d789..0846d6ed467f1ebcc1810d8e93892ecf9eb416e4 100644 --- a/networks/4g-5g-macro-v2x.yaml +++ b/networks/4g-5g-macro-v2x.yaml @@ -1,4 +1,4 @@ -version: 1.9.0 +version: 1.10.0 name: 4g-5g-macro-v2x deployment: netChar: diff --git a/networks/4g-5g-wifi-macro.yaml b/networks/4g-5g-wifi-macro.yaml index dc07779a2dc82a4a462e2f75f5b91fa1db11b9ab..12660e1d08c5de69b14cf895c1b7b9213ee3cde9 100644 --- a/networks/4g-5g-wifi-macro.yaml +++ b/networks/4g-5g-wifi-macro.yaml @@ -1,4 +1,4 @@ -version: 1.9.0 +version: 1.10.0 name: 4g-5g-wifi-macro deployment: netChar: diff --git a/networks/4g-macro.yaml b/networks/4g-macro.yaml index 0f31a9a1bee9c9b7989fe84ae78a65d6b9fe0f53..b310369aa43781b8262b44cffde83611fa3ec02a 100644 --- a/networks/4g-macro.yaml +++ b/networks/4g-macro.yaml @@ -1,4 +1,4 @@ -version: 1.9.0 +version: 1.10.0 name: 4g-macro deployment: netChar: diff --git a/networks/4g-wifi-macro.yaml b/networks/4g-wifi-macro.yaml index 23091818be345b88d3a14ced03de542634c10afe..e0f3d443de113226e9529ac22c88fd4fea469378 100644 --- a/networks/4g-wifi-macro.yaml +++ b/networks/4g-wifi-macro.yaml @@ -1,4 +1,4 @@ -version: 1.9.0 +version: 1.10.0 name: 4g-wifi-macro deployment: netChar: diff --git a/networks/dual-mep-4g-5g-wifi-macro.yaml b/networks/dual-mep-4g-5g-wifi-macro.yaml index 2c07babee880e943f672e4124e1ff030c3f97e04..70c0cf6a116dda96adcb325236b09947ebfd914c 100644 --- a/networks/dual-mep-4g-5g-wifi-macro.yaml +++ b/networks/dual-mep-4g-5g-wifi-macro.yaml @@ -1,4 +1,4 @@ -version: 1.9.0 +version: 1.10.0 name: dual-mep-4g-5g-wifi-macro deployment: netChar: diff --git a/networks/dual-mep-short-path.yaml b/networks/dual-mep-short-path.yaml index 7b5ca2e1dd377295357b94cbafd7d735dd3d3ac9..7dd3a731fe521e2442e793ddc48ae3d3744165a1 100644 --- a/networks/dual-mep-short-path.yaml +++ b/networks/dual-mep-short-path.yaml @@ -1,4 +1,4 @@ -version: 1.9.0 +version: 1.10.0 name: dual-mep-short-path deployment: netChar: