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 is possible to assign zero or more traffic limits. To define traffic limits it is 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:
POST
- Create a service profilePUT
- Add service(s) to a profile (service collection)PUT
- Add traffic limit(s) to a service (traffic_limit collection)
NOTE: For Service Profile management; paging, filtering and sorting is NOT provided.
Service Profile Object
Here is the description of a Service Profile object:
Name | Type | Description |
---|---|---|
id | Integer | Unique ID of this service profile |
name | String | A name or short description of the Service Profile (e.g.. for select boxes) |
description | String | A full description of the Service Profile |
allowed_3g | Boolean | Is 3G allowed |
allowed_4g | Boolean | Is 4G allowed |
allowed_nb_iot | Boolean | Is NB-IoT allowed |
DEPRECATED apply_quota | Boolean | Use apply_data_quota instead. Will be ignored in create/update requests if apply_data_quota is present |
apply_data_quota | Boolean | Apply a quota for data usage |
apply_sms_quota | Boolean | Apply a quota for sms usage |
retail | Boolean | Enable or disable Retail Subscription Management which allows the customer to manage or top up a prepaid balance. Use of this feature requires privileges `provided by BICS. |
sms_p2p_int | Boolean | Allow P2P SMS between endpoints for your own organisation (internal) |
sms_p2p_ext | Boolean | Allow P2P SMS to/from the world (external) |
DEPRECATED prepaid | Boolean | Enable prepaid balance management per endpoint |
nipdp | Boolean | Enable Network-Initiated PDP. If enabled and an endpoint is offline, EGN nodes will send GTP PDU-Notifications if packets are arriving for the IP of the endpoint |
used_count | Integer | The number of endpoints using this service profile |
api_callback | Object | id (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_secret | Object | id (Integer) - ID of the API Secret purpose (String) - Purpose of the API Secret |
moc_callback | Object | id (Integer) - ID of the MOC callbackurl (String) - URL of the MOC callback purpose (String) - Purpose of the MOC callback created (Date) - Creation date timestamp of the MOC callback |
esme_interface_type | Object | id (Integer) - ID of the ESME interface type |
breakout_region | Object | id (Integer) - ID of the Breakout Region |
dns | Object | id (Integer) - DNS ID |
service | Collection (Service) | Nested collection of services associated with a profile |
Nested Services Object
Here is the description of a nested Service object:
Name | Type | Description |
---|---|---|
id | Integer | Unique ID of this service |
description | String | Description of a service |
teleservice_code | Integer | Teleservice code of a service |
used_with_vlr | Boolean | Is this service used with Visitor Location Register |
used_with_sgsn | Boolean | Is this service used with Serving GPRS Support Node |
traffic_type | Object | id (Integer) - Traffic type ID description (String) - Traffic type description unit (String) - Traffic type unit of measure |
traffic_limit | Collection (traffic_limit) | Collection of traffic limits associated (nested) to a service |
Nested Traffic Limit Object
Here is the description of a (nested) Traffic limit object:
Name | Type | Description |
---|---|---|
id | Integer | Unique ID of this traffic limit |
volume | Integer | Volume limit of this traffic limit object |
period | Object | id (Integer) - limit period ID time_units (Integer) - number of unitsunit (String) - Unit of measure |
Service Profile Example
[
{
"id": 1,
"name": "Smart meter",
"description": "Data + SMS - 1G limit",
"allowed_3g": true,
"allowed_4g": false,
"allowed_nb_iot": false,
"retail": false,
"sms_p2p_int": true,
"sms_p2p_ext": true,
"nipdp": false,
"used_count":12,
"api_callback":{
"id":38,
"url": "https://www.customers-server.com",
"created": "2015-03-18 16:11:07",
"purpose": "Customer's Webserver"
},
"api_secret":{
"id": 38,
"purpose": "K3"
},
"moc_callback":{
"id":39,
"url": "https://moc.customers-server.com",
"created": "2015-03-18 16:11:17",
"purpose": "Customer's Moc server"
},
"esme_interface_type": {
"description": "Console",
"id": 3
},
"breakout_region": {
"name": "eu-west-1 (VPN)",
"ip_address": "0.0.0.0",
"id": 3
},
"dns": {
"id": 1,
"primary": "8.8.8.8",
"secondary": "8.8.4.4",
"ip_address_version": 4
},
"service": [
{
"id": 123,
"description": "Data",
"teleservice_code": 7678345,
"used_with_vlr": true,
"used_with_sgsn": true,
"traffic_type": {
"id": 1,
"description": "Data",
"unit": "GB"
},
"traffic_limit": [
{
"id": 123,
"volume": 64,
"period": {
"id": 33,
"time_units": 5,
"unit": "Days"
}
},
{
"id": 234,
"volume": 128,
"period": {
"id": 35,
"time_units": 1,
"unit": "Months"
}
}
]
},
{
"id": 234,
"description": "SMS",
"teleservice_code": 441236,
"used_with_vlr": true,
"used_with_sgsn": true,
"traffic_type": {
"id": 2,
"description": "SMS",
"unit": "count"
},
"traffic_limit": []
}
]
}
]