Service profile

A service profile is an endpoint configuration entity that groups services and traffic limits for assignment.

Instead of assigning services and traffic limits directly to an endpoint, those can be associated to a service profile and assigned to an endpoint in a single operation.

A service profile holds a collection of services and for each associated service it’s possible to assign zero or more traffic limits. To define traffic limits it’s first necessary to associate services to a profile.

  • Services are read only objects.
  • Traffic limits are defined for a particular service
  • Traffic limits can also be associated directly to an endpoint

The typical workflow for service profile definition is:

  1. POST - Create a service profile
  2. PUT - Add services to a profile (service collection)
  3. PUT - Add traffic limits to a service (traffic_limit collection)

For Service Profile management: paging, filtering, and sorting isn’t provided.

Service profile object

NameTypeDescription
idIntegerUnique ID of this service profile
nameStringA name or short description of the Service Profile (for example, for select boxes)
descriptionStringA full description of the Service Profile
allowed_3gBooleanIs 3G allowed
allowed_4gBooleanAllow connectivity for 4G/LTE and LTE-M networks.
allowed_nb_iotBooleanIs NB-IoT allowed
allowed_nb_iot_geoBooleanAllow NB-IoT connectivity over satellite networks.
DEPRECATED apply_quotaBooleanUse apply_data_quota instead. Ignored in create/update requests if apply_data_quota is present
apply_data_quotaBooleanApply a quota for data usage
apply_sms_quotaBooleanApply a quota for SMS usage
retailBooleanTurn Retail Subscription Management on or off, which allows the customer to manage or top up a prepaid balance. Use of this feature requires privileges `provided by emnify.
sms_p2p_intBooleanAllow P2P SMS between endpoints for your own organization (internal)
sms_p2p_extBooleanAllow P2P SMS to/from the world (external)
DEPRECATEDprepaidBooleanEnable prepaid balance management per endpoint
nipdpBooleanEnable Network-Initiated PDP. If enabled and an endpoint is offline, EGN nodes send GTP PDU-Notifications if packets are arriving for the IP of the endpoint
used_countIntegerThe number of endpoints using this service profile
api_callbackObjectid(Integer) - ID of the API callback
url(String) - URL of the API callback
purpose(String) - Purpose of the API callback
created(Date) - Creation date timestamp of the API callback
api_secretObjectid(Integer) - ID of the API Secret
purpose(String) - Purpose of the API Secret
moc_callbackObjectid(Integer) - ID of the MOC callback
url(String) - URL of the MOC callback
purpose(String) - Purpose of the MOC callback
created(Date) - Creation date timestamp of the MOC callback
esme_interface_typeObjectid(Integer) - ID of the ESME interface type
breakout_regionObjectid(Integer) - ID of the Breakout Region
dnsObjectid(Integer) - DNS ID
serviceCollection
(Service)
Nested collection of services associated with a profile (see Service object)

Service object

Here is the description of a nested Service object:

NameTypeDescription
idIntegerUnique ID of this service
descriptionStringDescription of a service
teleservice_codeIntegerTeleservice code of a service
used_with_vlrBooleanIs this service used with Visitor Location Register
used_with_sgsnBooleanIs this service used with Serving GPRS Support Node
traffic_typeObjectid (Integer) - Traffic type ID
description (String) - Traffic type description
unit (String) - Traffic type unit of measure
traffic_limitCollection
(traffic_limit)
Collection of traffic limits associated (nested) to a service (See Traffic limit object)

Traffic limit object

Here is the description of a (nested) Traffic limit object:

NameTypeDescription
idIntegerUnique ID of this traffic limit
volumeIntegerVolume limit of this traffic limit object
periodObjectid (Integer) - limit period ID
time_units (Integer) - number of units
unit (String) - Unit of measure

Example service profile

1[
2 {
3 "id": 1,
4 "name": "Smart meter",
5 "description": "Data + SMS - 1G limit",
6 "allowed_3g": true,
7 "allowed_4g": false,
8 "allowed_nb_iot": false,
9 "allowed_nb_iot_geo": false,
10 "retail": false,
11 "sms_p2p_int": true,
12 "sms_p2p_ext": true,
13 "nipdp": false,
14 "used_count":12,
15 "api_callback":{
16 "id":38,
17 "url": "https://www.customers-server.com",
18 "created": "2015-03-18 16:11:07",
19 "purpose": "Customer's Webserver"
20 },
21 "api_secret":{
22 "id": 38,
23 "purpose": "K3"
24 },
25 "moc_callback":{
26 "id":39,
27 "url": "https://moc.customers-server.com",
28 "created": "2015-03-18 16:11:17",
29 "purpose": "Customer's Moc server"
30 },
31 "esme_interface_type": {
32 "description": "Console",
33 "id": 3
34 },
35 "breakout_region": {
36 "name": "eu-west-1 (VPN)",
37 "ip_address": "0.0.0.0",
38 "id": 3
39 },
40 "dns": {
41 "id": 1,
42 "primary": "8.8.8.8",
43 "secondary": "8.8.4.4",
44 "ip_address_version": 4
45 },
46 "service": [
47 {
48 "id": 123,
49 "description": "Data",
50 "teleservice_code": 7678345,
51 "used_with_vlr": true,
52 "used_with_sgsn": true,
53 "traffic_type": {
54 "id": 1,
55 "description": "Data",
56 "unit": "GB"
57 },
58 "traffic_limit": [
59 {
60 "id": 123,
61 "volume": 64,
62 "period": {
63 "id": 33,
64 "time_units": 5,
65 "unit": "Days"
66 }
67 },
68 {
69 "id": 234,
70 "volume": 128,
71 "period": {
72 "id": 35,
73 "time_units": 1,
74 "unit": "Months"
75 }
76 }
77 ]
78 },
79 {
80 "id": 234,
81 "description": "SMS",
82 "teleservice_code": 441236,
83 "used_with_vlr": true,
84 "used_with_sgsn": true,
85 "traffic_type": {
86 "id": 2,
87 "description": "SMS",
88 "unit": "count"
89 },
90 "traffic_limit": []
91 }
92 ]
93 }
94]