/** * @desc The ETSI MEC ISG MEC012 Radio Network Information API described using OpenAPI * @see http://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/01.01.01_60/gs_mec012v010101p.pdf */ module RnisAPI_TypesAndValues { // JSON import from JSON all; // LibCommon import from LibCommon_BasicTypesAndValues all; /** * @desc Problem Details for HTTP APIs * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type * @member title A short, human-readable summary of the problem type * @member status The HTTP status code for this occurrence of the problem * @member detail A human-readable explanation specific to this occurrence of the problem * @member instance A URI reference that identifies the specific occurrence of the problem * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object */ type record ProblemDetails { JSON.String type_, JSON.String title, UInt32 status, JSON.String detail, JSON.String instance } with { variant (type_) "name as 'type'"; } /** * @desc * @member timeStamp * @member appInsId * @member ecgi */ type record PlmnInfo { TimeStamp timeStamp optional, AppInsId appInsId, Plmns plmn } /** * @desc * @member timeStamp * @member appInsId * @member requestId * @member cellUserInfo */ type record RabInfo { TimeStamp timeStamp optional, AppInsId appInsId, RequestId requestId, CellUserInfo cellUserInfo optional } /** * @desc * @member timeStamp * @member appInsId * @member ecgi */ type record S1BearerInfo { TimeStamp timeStamp optional, S1UeInfo s1UeInfo } /** * @desc The information on users per cell * @member tempUeId * @member associateId * @member ecgi * @member s1BearerInfoDetailed */ type record S1UeInfo_ { TempUeId tempUeId optional, AssociateId associateId optional, Ecgi ecgi, S1BearerInfoDetailed s1BearerInfoDetailed } type record of S1UeInfo_ S1UeInfo; /** * @desc Information on UEs in the specific cell * @member erabId The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413 * @member enbInfo S1 bearer information on eNB side * @member sGwInfo S1 bearer information on GW side */ type record S1BearerInfoDetailed_ { ErabId erabId, S1EnbInfo s1EnbInfo, SGwInfo sGwInfo } type record of S1BearerInfoDetailed_ S1BearerInfoDetailed; type UInt32 ErabId; /** * @desc * @member mmec MMEC as defined in ETSI TS 136 413 * @member mtmsi M-TMSI as defined in ETSI TS 136 413 */ type record TempUeId_ { Mmec mmec, Mtmsi mtmsi } type record of TempUeId_ TempUeId; type JSON.String Mmec; type JSON.String Mtmsi; /** * @desc * @member ipAddress eNB transport layer address of this S1 bearer * @member tunnelId eNB GTP-U TEID of this S1 bearer */ type record S1EnbInfo { JSON.String ipAddress, JSON.String tunnelId } /** * @desc * @member ipAddress SGW transport layer address of this S1 bearer * @member tunnelId SGW GTP-U TEID of this S1 bearer */ type record SGwInfo { JSON.String ipAddress, JSON.String tunnelId } /** * @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 } /** * @desc Unique identifier for the mobile edge application instance", */ type JSON.String AppInsId; /** * @desc Unique identifier allocated by the Mobile Edge application for the Information request */ type JSON.String RequestId; /** * @desc The information on users per cell * @member ecgi * @member ueInfo */ type record CellUserInfo_ { Ecgi ecgi, UeInfo ueInfo } type record of CellUserInfo_ CellUserInfo; /** * @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413 * @member ecgi * @member cellId */ type record Ecgi_ { Plmn plmn, CellId cellId } type record of Ecgi_ Ecgi; /** * @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413 * @member mcc The Mobile Country Code part of PLMN Identity as defined in 3GPP TS 36.413 * @member mnc The Mobile Network Code part of PLMN Identity as defined in 3GPP TS 36.413 */ type record Plmn { JSON.String mcc, JSON.String mnc } type record of Plmn Plmns; /** * @desc The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413 */ type JSON.String CellId; /** * @desc Information on UEs in the specific cell * @member associateId * @member erabInfo */ type record UeInfo_ { AssociateId associateId optional, ErabInfo erabInfo } type record of UeInfo_ UeInfo; /** * @desc Information on UEs in the specific cell * @member type Numeric value (0-255) corresponding to specified type of identifier * @member value Value for the identifier */ type record AssociateId_ { AssociateId_type type_, JSON.String value_ } with { variant (type_) "name as 'type'"; variant (value_) "name as 'value'"; } type record of AssociateId_ AssociateId; /** * @desc Numeric value (0-255) corresponding to specified type of identifier */ type enumerated AssociateId_type { RESERVED (0), UE_IPV4_ADDRESS (1), UE_IPV6_ADDRESS (2), NATED_IP_ADDRESS (3), GTP_TEID (4) } type record ErabInfo_ { ErabId erabId, ErabQosParameters erabQosParameters } type record of ErabInfo_ ErabInfo; /** * @desc * @member qci QoS Class Identifier as defined in TS 23.401 * @member qci_information */ type record ErabQosParameter { Qci qci, QosInformation qosInformation optional } type record of ErabQosParameter ErabQosParameters; /** * @desc QoS Class Identifier as defined in TS 23.401 */ type UInt32 Qci; /** * @desc The QoS information for the E-RAB * @member erabGbrDl This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer * @member erabGbrUl This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer * @member erabGbrDl This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer * @member erabMbrUl This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer */ type record QosInformation_ { UInt32 erabMbrDl, UInt32 erabMbrUl, UInt32 erabGbrDl, UInt32 erabGbrUl } type record of QosInformation_ QosInformation; /** * @desc * @member links * @member subscription */ type record SubscriptionLinkList { Link links, Subscription subscription optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member filterCriteria * @member expiryDeadline */ type record MeasRepUeSubscriptionPost { CallbackReference callbackReference, FilterCriteriaAssocTri filterCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record MeasRepUeSubscription { CallbackReference callbackReference, Link links, FilterCriteriaAssocTri filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member eventType * @member s1BearerSubscriptionCriteria * @member expiryDeadline */ type record S1BearerSubscriptionPost { CallbackReference callbackReference, EventType eventType, S1BearerSubscriptionCriteria s1BearerSubscriptionCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member links * @member s1BearerSubscriptionCriteria * @member expiryDeadline */ type record S1BearerSubscription { CallbackReference callbackReference, Link links, S1BearerSubscriptionCriteria s1BearerSubscriptionCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member links * @member filterCriteria */ type record RabEstSubscription { SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssocQci filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record RabEstSubscriptionPost { CallbackReference callbackReference, Link links, FilterCriteriaAssocQci filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record RabModSubscription { SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssocQci filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member filterCriteria * @member expiryDeadline */ type record RabModSubscriptionPost { CallbackReference callbackReference, FilterCriteriaAssocQci filterCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record RabRelSubscription { SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssocQci filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member filterCriteria * @member expiryDeadline */ type record RabRelSubscriptionPost { CallbackReference callbackReference, FilterCriteriaAssocQci filterCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record CaReConfSubscription { CallbackReference callbackReference, Link links, FilterCriteriaAssoc filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member filterCriteria * @member expiryDeadline */ type record CaReConfSubscriptionPost { CallbackReference callbackReference, FilterCriteriaAssoc filterCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member filterCriteria * @member expiryDeadline */ type record CellChangeSubscriptionPost { CallbackReference callbackReference, FilterCriteriaAssocHo filterCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record CellChangeSubscription { SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssocHo filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc * @member callbackReference * @member filterCriteria * @member expiryDeadline */ type record MeasTaSubscriptionPost { CallbackReference callbackReference, FilterCriteriaAssoc filterCriteria, TimeStamp expiryDeadline optional } /** * @desc * @member callbackReference * @member links * @member filterCriteria * @member expiryDeadline */ type record MeasTaSubscription { CallbackReference callbackReference, Link links, FilterCriteriaAssocHo filterCriteria, TimeStamp expiryDeadline optional } with { variant (links) "name as '_links'"; } /** * @desc URL selected by the Mobile Edge application to receive notifications on the subscribed RNIS information */ type JSON.String CallbackReference; /** * @desc List of hyperlinks related to the resource * @member self_ URI referring to a resource */ type record Link { LinkType self_ } with { variant (self_) "name as 'self'"; } /** * @desc URI referring to a resource */ type JSON.AnyURI LinkType; /** * @desc A link to a subscription * @member * @member */ type record Subscription_ { LinkType href, SubscriptionType subscriptionType } type record of Subscription_ Subscription; /** * @desc Numeric value corresponding to specified type of subscription * @member * @member * @member * @member * @member * @member */ type enumerated SubscriptionType { RESERVED, CELL_CHANGE, RAB_ESTABLISHMENT, RAB_MODIFICATION, RAB_RELEASE, MEAS_REPORT_UE, MEAS_TIMING_ADVANCE, CA_RECONF, S1_BEARE, WRONG_PARAMETER } /** * @desc List of filtering criteria for the subscription * @member appInsId * @member associateId * @member plmn * @member cellId */ type record FilterCriteriaAssoc { AppInsId appInsId, AssociateId associateId, Plmn plmn, CellId cellId } /** * @desc List of filtering criteria for the subscription * @member appInsId * @member associateId * @member plmn * @member cellId * @member qci */ type record FilterCriteriaAssocQci { AppInsId appInsId, ErabId erabId, Ecgi ecgi, Qci qci } /** * @desc List of filtering criteria for the subscription * @member appInsId * @member associateId * @member plmn * @member cellId * @member hoStatus */ type record FilterCriteriaAssocHo { AppInsId appInsId, AssociateId associateId, Plmn plmn, CellId cellId, HoStatus hoStatus } /** * @desc List of filtering criteria for the subscription * @member appInsId * @member associateId * @member plmn * @member cellId * @member trigger */ type record FilterCriteriaAssocTri { AppInsId appInsId, AssociateId associateId, Plmn plmn, CellId cellId, Trigger trigger_ } with { variant (trigger_) "name as 'trigger'"; } /** * @desc List of filtering criteria for the subscription * @member appInsId * @member associateId * @member plmn * @member cellId * @member trigger */ type record S1BearerSubscriptionCriteria { AssociateId associateId, Plmn plmn, CellId cellId, ErabId erabId } /** * @desc Description of the subscribed to event */ type enumerated HoStatus { RESERVED, IN_PREPARATION, IN_EXECUTION, COMPLETED, REJECTED, CANCELLED } /** * @desc Description of the subscribed event */ type enumerated EventType { RESERVED, S1_BEARER_ESTABLISH, S1_BEARER_MODIFY, S1_BEARER_RELEASE } /** * @desc Unique identifier for the mobile edge application instance */ type enumerated Trigger { NOT_AVAILABLE, PERIODICAL_REPORT_STRONGEST_CELLS, PERIODICAL_REPORT_STRONGEST_CELLS_FOR_SON, PERIODICAL_REPORT_CGI, EVENT_A1, EVENT_A2, EVENT_A3, EVENT_A4, EVENT_A5, EVENT_A6, EVENT_B1, EVENT_B2, EVENT_C1, EVENT_C2, EVENT_W1, EVENT_W2, EVENT_W3 } } with { encode "JSON" } // End of module RnisAPI_TypesAndValues