Commit 0b3144c7 authored by Yann Garcia's avatar Yann Garcia
Browse files

Add RnisAPI typing

parent a0ce1899
......@@ -12,6 +12,7 @@ module AtsMec_TestControl {
import from AtsMec_LocationAPI_TestCases all;
import from AtsMec_UEidentityAPI_TestCases all;
import from AtsMec_UEinformation_TestCases all;
import from AtsMec_RnisAPI_TestCases all;
control {
......
......@@ -2,7 +2,12 @@ module LocationAPI_TypesAndValues {
// LibCommon
import from LibCommon_BasicTypesAndValues all;
/**
* @desc
* @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
*/
type record TimeStamp {
UInt32 seconds,
UInt32 nanoSeconds
......
{
"swagger": "2.0",
"info": {
"description": "The ETSI MEC ISG MEC012 Radio Network Information API described using OpenAPI",
"version": "1.1.1",
"title": "RNI API",
"license": {
"name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
}
},
"externalDocs": {
"description": "ETSI GS MEC012 Radio Network Information API, V1.1.1",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/01.01.01_60/gs_mec012v010101p.pdf"
},
"host": "127.0.0.1:8081",
"basePath": "/rni/v1",
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [
{
"OauthSecurity": [
"all"
]
}
],
"securityDefinitions": {
"OauthSecurity": {
"type": "oauth2",
"flow": "application",
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
}
}
},
"parameters": {
"Body.CellChangeSubscriptionPost": {
"name": "CellChangeSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to cell change notifications based on the\n filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscriptionPost"
}
}
}
},
"Body.CellChangeSubscription": {
"name": "CellChangeSubscription",
"in": "body",
"description": "Use to creates a subscription to cell change notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscription"
}
}
}
},
"Body.S1BearerSubscriptionPost": {
"name": "S1BearerSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to S1 Bearer notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscriptionPost"
}
}
}
},
"Body.S1BearerSubscription": {
"name": "S1BearerSubscription",
"in": "body",
"description": "Use to creates a subscription to S1 Bearer notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscription"
}
}
}
},
"Body.MeasTaSubscriptionPost": {
"name": "MeasTaSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to UE Timing Advance notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscriptionPost"
}
}
}
},
"Body.MeasTaSubscription": {
"name": "MeasTaSubscription",
"in": "body",
"description": "Use to creates a subscription to UE Timing Advance notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscription"
}
}
}
},
"Body.MeasRepUeSubscriptionPost": {
"name": "MeasRepUeSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to UE measurement report notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscriptionPost"
}
}
}
},
"Body.MeasRepUeSubscription": {
"name": "MeasRepUeSubscription",
"in": "body",
"description": "Use to creates a subscription to UE measurement report notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscription"
}
}
}
},
"Body.RabEstSubscriptionPost": {
"name": "RabEstSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to RAB establishment notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscriptionPost"
}
}
}
},
"Body.RabEstSubscription": {
"name": "RabEstSubscription",
"in": "body",
"description": "Use to creates a subscription to RAB establishment notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscription"
}
}
}
},
"Body.RabModSubscriptionPost": {
"name": "RabEstSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to RAB Modification notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscriptionPost"
}
}
}
},
"Body.RabModSubscription": {
"name": "RabEstSubscription",
"in": "body",
"description": "Use to creates a subscription to RAB Modification notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscription"
}
}
}
},
"Body.RabRelSubscriptionPost": {
"name": "RabRelSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to RAB Release notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscriptionPost"
}
}
}
},
"Body.RabRelSubscription": {
"name": "RabRelSubscription",
"in": "body",
"description": "Use to creates a subscription to RAB Release notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscription"
}
}
}
},
"Body.CaReConfSubscriptionPost": {
"name": "CaReConfSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to Carrier Aggregation Reconfiguration notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscriptionPost"
}
}
}
},
"Body.CaReConfSubscription": {
"name": "CaReConfSubscription",
"in": "body",
"description": "Use to creates a subscription to Carrier Aggregation Reconfiguration notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscription"
}
}
}
},
"Path.subscrId": {
"name": "subscriptionId",
"in": "path",
"description": "Subscription Id, specifically the \"self\" returned in the subscription request",
"required": true,
"type": "string",
"format": "uri"
},
"Query.AppInsId": {
"name": "app_ins_id",
"in": "query",
"description": "Application instance identifier",
"required": false,
"type": "string"
},
"Query.AppInsIdArr": {
"name": "app_ins_id",
"in": "query",
"description": "Application instance identifier",
"required": true,
"type": "array",
"items": {
"type": "string"
}
},
"Query.UeIpv4Address": {
"name": "ue_ipv4_address",
"in": "query",
"description": "Comma separated list of IE IPv4 addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.UeIpv6Address": {
"name": "ue_ipv6_address",
"in": "query",
"description": "Comma separated list of IE IPv6 addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.NatedIpAddress": {
"name": "nated_ip_address",
"in": "query",
"description": "Comma separated list of IE NATed IP addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.GtpTeId": {
"name": "gtp_teid",
"in": "query",
"description": "Comma separated list of GTP TEID addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.CellId": {
"name": "cell_id",
"in": "query",
"description": "E-UTRAN Cell Identity as a bit string (size (28)), as defined in ETSI TS 136 413",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.ErabGbrDl": {
"name": "erab_gbr_dl",
"in": "query",
"description": "Guaranteed downlink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabGbrUl": {
"name": "erab_gbr_ul",
"in": "query",
"description": "Guaranteed uplink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabId": {
"name": "erab_id",
"in": "query",
"description": "E-RAB identifier",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabIdArr": {
"name": "erab_id",
"in": "query",
"description": "E-RAB identifier",
"required": false,
"type": "array",
"items": {
"type": "integer",
"format": "uint32"
}
},
"Query.ErabMbrDl": {
"name": "erab_mbr_dl",
"in": "query",
"description": "Maximum downlink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabMbrUl": {
"name": "erab_mbr_ul",
"in": "query",
"description": "Maximum uplink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.Qci": {
"name": "qci",
"in": "query",
"description": "QoS Class Identifier as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.TempUeId": {
"name": "temp_ue_id",
"in": "query",
"description": "The temporary identifier allocated for the specific UE as defined in ETSI TS 136 413",
"required": false,
"type": "array",
"items": {
"type": "string"
}
}
},
"paths": {
"/resources/rab_info": {
"get": {
"description": "Gets information on existing E-RABs that are associated with a specific mobile edge application instance",
"operationId": "rab_infoGET",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Query.AppInsId"
},
{
"$ref": "#/parameters/Query.CellId"
},
{
"$ref": "#/parameters/Query.UeIpv4Address"
},
{
"$ref": "#/parameters/Query.UeIpv6Address"
},
{
"$ref": "#/parameters/Query.NatedIpAddress"
},
{
"$ref": "#/parameters/Query.GtpTeId"
},
{
"$ref": "#/parameters/Query.ErabId"
},
{
"$ref": "#/parameters/Query.Qci"
},
{
"$ref": "#/parameters/Query.ErabMbrDl"
},
{
"$ref": "#/parameters/Query.ErabMbrUl"
},
{
"$ref": "#/parameters/Query.ErabGbrDl"
},
{
"$ref": "#/parameters/Query.ErabGbrUl"
}
],
"responses": {
"200": {
"description": "Successful response to rab_info request",
"schema": {
"type": "object",
"required": [
"RabInfo"
],
"properties": {
"RabInfo": {
"$ref": "#/definitions/RabInfo"
}
}
},
"examples": {
"application/json": {
"RabInfo": {
"timeStamp": {
"seconds": 1577836800,
"nanoSeconds": 0
},
"appInId": "01",
"requestId": "01",
"cellUserInfo": {
"ecgi": {
"plmn": {
"mcc": "001",
"mnc": "01"
},
"cellId": "0x800000A"
},
"ueInfo": {
"associateId": null,
"type": "1",
"value": "192.0.2.0",
"erabInfo": {
"erabId": 10
},
"erabQosParameters": {
"qci": 7,
"qosInformation": {
"erabMbrDl": 10,
"erabMbrUl": 10,
"erabGbrDl": 10,
"erabGbrUl": 10
}
}
}
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {