Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TS29518_Namf_Location.ttcn 5.88 KiB
/******************************************************************************
* Copyright (c) 2000-2023 Ericsson AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
*   Gabor Szalai - initial implementation and initial documentation
******************************************************************************/
//
//  File:               TS29518_Namf_Location.ttcn
//  Description:	      Type definitions for 3GPP TS29518
/////////////////////////////////////////////// 
module TS29518_Namf_Location {

  import from TS29572_Nlmf_Location all
  import from TS29571_CommonData all

  external function f_enc_RequestPosInfo(in RequestPosInfo pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_RequestPosInfo(in octetstring stream, out RequestPosInfo pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_ProvidePosInfo(in ProvidePosInfo pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_ProvidePosInfo(in octetstring stream, out ProvidePosInfo pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_NotifiedPosInfo(in NotifiedPosInfo pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_NotifiedPosInfo(in octetstring stream, out NotifiedPosInfo pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_RequestLocInfo(in RequestLocInfo pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_RequestLocInfo(in octetstring stream, out RequestLocInfo pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_ProvideLocInfo(in ProvideLocInfo pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_ProvideLocInfo(in octetstring stream, out ProvideLocInfo pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }


  type set RequestPosInfo {
    TS29572_Nlmf_Location.ExternalClientType    lcsClientType,
    LocationType    lcsLocation,
    TS29571_CommonData.Supi    supi optional,
    TS29571_CommonData.Gpsi    gpsi optional,
    TS29572_Nlmf_Location.LcsPriority    priority optional,
    TS29572_Nlmf_Location.LocationQoS    lcsQoS optional,
    TS29572_Nlmf_Location.VelocityRequested    velocityRequested optional,
    TS29572_Nlmf_Location.SupportedGADShapes    lcsSupportedGADShapes optional,
    TS29571_CommonData.Uri    locationNotificationUri optional,
    TS29571_CommonData.SupportedFeatures    supportedFeatures optional
  }

  type set ProvidePosInfo {
    TS29572_Nlmf_Location.GeographicArea    locationEstimate optional,
    TS29572_Nlmf_Location.AccuracyFulfilmentIndicator    accuracyFulfilmentIndicator optional,
    TS29572_Nlmf_Location.AgeOfLocationEstimate    ageOfLocationEstimate optional,
    TS29572_Nlmf_Location.VelocityEstimate    velocityEstimate optional,
    set of       TS29572_Nlmf_Location.PositioningMethodAndUsage    positioningDataList optional,
    set of       TS29572_Nlmf_Location.GnssPositioningMethodAndUsage    gnssPositioningDataList optional,
    TS29571_CommonData.Ecgi    ecgi optional,
    TS29571_CommonData.Ncgi    ncgi optional,
    TS29571_CommonData.NfInstanceId    targetServingNode optional,
    TS29572_Nlmf_Location.CivicAddress    civicAddress optional,
    BarometricPressure    barometricPressure optional,
    TS29571_CommonData.SupportedFeatures    supportedFeatures optional
  }

  type set NotifiedPosInfo {
    LocationEvent    locationEvent,
    TS29571_CommonData.Supi    supi optional,
    TS29571_CommonData.Gpsi    gpsi optional,
    TS29571_CommonData.Pei    pei optional,
    TS29572_Nlmf_Location.GeographicArea    locationEstimate optional,
    TS29572_Nlmf_Location.AgeOfLocationEstimate    ageOfLocationEstimate optional,
    TS29572_Nlmf_Location.VelocityEstimate    velocityEstimate optional,
    set of       TS29572_Nlmf_Location.PositioningMethodAndUsage    positioningDataList optional,
    set of       TS29572_Nlmf_Location.GnssPositioningMethodAndUsage    gnssPositioningDataList optional,
    TS29571_CommonData.Ecgi    ecgi optional,
    TS29571_CommonData.Ncgi    ncgi optional,
    TS29571_CommonData.NfInstanceId    servingNode optional,
    TS29572_Nlmf_Location.CivicAddress    civicAddress optional,
    BarometricPressure    barometricPressure optional
  }

  type set RequestLocInfo {
    boolean req5gsLoc optional,
    boolean reqCurrentLoc optional,
    boolean reqRatType optional,
    boolean reqTimeZone optional,
    TS29571_CommonData.SupportedFeatures    supportedFeatures optional
  }

  type set ProvideLocInfo {
    boolean currentLoc optional,
    TS29571_CommonData.UserLocation    location optional,
    TS29572_Nlmf_Location.GeographicArea    geoInfo optional,
    TS29572_Nlmf_Location.AgeOfLocationEstimate    locatoinAge optional,
    TS29571_CommonData.RatType    ratType optional,
    TS29571_CommonData.TimeZone    timezone optional,
    TS29571_CommonData.SupportedFeatures    supportedFeatures optional
  }

  type integer BarometricPressure

  type enumerated LocationType_enum { CURRENT_LOCATION, CURRENT_OR_LAST_KNOWN_LOCATION, INITIAL_LOCATION}

  type union LocationType {
    LocationType_enum  enum_val,
    charstring           other_val
  } with {
    variant "JSON: as value"
  }


  type enumerated LocationEvent_enum { EMERGENCY_CALL_ORIGINATION, EMERGENCY_CALL_RELEASE, EMERGENCY_CALL_HANDOVER}

  type union LocationEvent {
    LocationEvent_enum  enum_val,
    charstring           other_val
  } with {
    variant "JSON: as value"
  }






} with {
  encode "JSON"
}