LocationAPI_TypesAndValues.ttcn 3.87 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
module LocationAPI_TypesAndValues {
  
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;
Yann Garcia's avatar
Yann Garcia committed
  
Yann Garcia's avatar
Yann Garcia committed
  type record TimeStamp {
    UInt32 seconds,
    UInt32 nanoSeconds
  }
  
  /**
   * @desc A type containing user information.
Yann Garcia's avatar
Yann Garcia committed
   * @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI).
   * @member accessPointId Identifier of access point, <E-CGI><Cell Portion ID> (reference ETSI TS 129 171).
   * @member zoneId Identifier of zone
   * @member resourceURL Self referring URL.
   * @member timeStamp Indicates the time of day for zonal presence notification.
   * @member locationInfo A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided.
Yann Garcia's avatar
Yann Garcia committed
   */
  type record UserInfo {
    universal charstring address_,
    universal charstring accessPointId,
    universal charstring zoneId,
    universal charstring resourceURL,
    TimeStamp timeStamp,
    LocationInfo locationInfo optional,
    universal charstring contextLocationInfo optional,
    universal charstring ancillaryInfo optional
  } with {
    variant (address_) "name as 'address'";
  } // End of type UserInfo
Yann Garcia's avatar
Yann Garcia committed

  /**
   * @desc A type containing list of users.
   * @member user Collection of the zone information list.
   * @member resourceURL Self referring URL.
   */
  type record of UserInfo UserInfos;
  type record UserList {
    UserInfos user optional,
    universal charstring resourceURL
  }
Yann Garcia's avatar
Yann Garcia committed
  
  /**
   * @desc A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided.
Yann Garcia's avatar
Yann Garcia committed
   * @member latitude
   * @member longitude
   * @member altitude
   * @member accuracy
Yann Garcia's avatar
Yann Garcia committed
   */
  type record LocationInfo {
    float latitude,
    float longitude,
    float altitude optional,
    integer accuracy
  } // End of type LocationInfo
  
  /**
   * @desc A type containing zone information.
Yann Garcia's avatar
Yann Garcia committed
   * @member zoneId Identifier of zone
   * @member numberOfAccessPoints The number of access points within the zone
   * @member numberOfUnservicableAccessPoints Number of inoperable access points within the zone.
   * @member numberOfUsers The number of users currently on the access point.
   * @member resourceURL Self referring URL.
Yann Garcia's avatar
Yann Garcia committed
   */
  type record ZoneInfo {
    universal charstring zoneId,
    UInt32 numberOfAccessPoints,
    UInt32 numberOfUnservicableAccessPoints,
    UInt32 numberOfUsers,
    universal charstring resourceURL
  }
Yann Garcia's avatar
Yann Garcia committed

  /**
   * @desc Collection of the zone information list.
   * @member zone Collection of the zone information list.
   * @member resourceURL Self referring URL.
   */
  type record of ZoneInfo ZoneInfos;
  type record ZoneList {
    ZoneInfos zone optional,
    universal charstring resourceURL
  }

  /**
   * @desc The connection type for the access point.
   */
  type enumerated ConnectionType {
    e_femto,
    e_lte_femto,
    e_smallcell,
    e_lte_smallcell,
    e_wifi,
    e_pico,
    e_micro,
    e_macro,
    e_wimax,
    e_unknown
  }

  /**
   * @desc The operation status of the access point
   */
  type enumerated OperationStatus {
    e_serviceable,
    e_unserviceable,
    e_unknown
  }
  
  /**
   * @desc A type containing access point information.
   * @member accessPointId
   * @member connectionType The connection type for the access poin
   * @member operationStatus The operation status of the access point
   * @member numberOfUsers The number of users currently on the access point.
   * @member resourceURL Self referring URL.
   */
  type record AccessPointInfo {
    universal charstring accessPointId,
    ConnectionType connectionType,
    OperationStatus operationStatus,
    UInt32 numberOfUsers,
    universal charstring resourceURL
  }

  type record of AccessPointInfo AccessPointInfos
  type record AccessPointInfoList {
    AccessPointInfos AccessPointInfo optional,
    universal charstring resourceURL
  }
Yann Garcia's avatar
Yann Garcia committed
  
} with {
  encode "JSON"
}