Session Admission Control Group¶
A session admission control (SAC) group is a set of access devices logically grouped together. You create SAC groups to impose restrictions on the number of concurrent sessions for a given set of access devices.
List all session admission control group in a Group¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
¶ List all session admission control groups in a Group.
Authorization rights: minimum Group Admin.
Example request:
GET /api/v1/tenants/footenant/groups/foogroup/sacgs/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" { "sacgs": [{ "name": "test_sacg", "default": false, "maxSessions": 0 }] }
- Response JSON Object:
sacgs (array) – a list of objects as defined as Group Session Admission Control Group in list attributes.
- Status Codes:
200 OK – no error
List all session admission available devices¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/available_devices/
¶ List all session admission available devices.
Authorization rights: minimum Group Admin.
Example request:
GET /api/v1/tenants/footenant/groups/foogroup/sacgs/available_devices/ HTTP/1.1 Host: example.com
- Request JSON Object:
sensitiveDeviceNameStarts (string) – See sensitiveDeviceNameStarts from Search criteria.
sensitiveDeviceNameContains (string) – See sensitiveDeviceNameContains from Search criteria.
sensitiveDeviceNameEquals (string) – See sensitiveDeviceNameEquals from Search criteria.
insensitiveDeviceNameStarts (string) – See insensitiveDeviceNameStarts from Search criteria.
insensitiveDeviceNameContains (string) – See insensitiveDeviceNameContains from Search criteria.
insensitiveDeviceNameEquals (string) – See insensitiveDeviceNameEquals from Search criteria.
sensitiveDeviceMacAddressStarts (string) – See sensitiveDeviceMacAddressStarts from Search criteria.
sensitiveDeviceMacAddressContains (string) – See sensitiveDeviceMacAddressContains from Search criteria.
sensitiveDeviceMacAddressEquals (string) – See sensitiveDeviceMacAddressEquals from Search criteria.
insensitiveDeviceMacAddressStarts (string) – See insensitiveDeviceMacAddressStarts from Search criteria.
insensitiveDeviceMacAddressContains (string) – See insensitiveDeviceMacAddressContains from Search criteria.
insensitiveDeviceMacAddressEquals (string) – See insensitiveDeviceMacAddressEquals from Search criteria.
sensitiveDeviceNetAddressStarts (string) – See sensitiveDeviceNetAddressStarts from Search criteria.
sensitiveDeviceNetAddressContains (string) – See sensitiveDeviceNetAddressContains from Search criteria.
sensitiveDeviceNetAddressEquals (string) – See sensitiveDeviceNetAddressEquals from Search criteria.
insensitiveDeviceNetAddressStarts (string) – See insensitiveDeviceNetAddressStarts from Search criteria.
insensitiveDeviceNetAddressContains (string) – See insensitiveDeviceNetAddressContains from Search criteria.
insensitiveDeviceNetAddressEquals (string) – See insensitiveDeviceNetAddressEquals from Search criteria.
sensitiveDeviceTypeEquals (string) – See sensitiveDeviceTypeEquals from Search criteria.
sensitiveDeviceLevelEquals (string) – See sensitiveDeviceLevelEquals from Search criteria.
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" { "available_devices": [{ "name": "APIO Test Device", "level": "Group" }] }
- Response JSON Object:
available_devices (array) – See ‘devices’ from Group Session Admission Control Group attributes.
- Status Codes:
200 OK – no error
Create a session admission control group in a Group¶
-
POST
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
¶ Create a session admission control group in a Group.
Authorization rights: minimum Group Admin.
Example request:
POST /api/v1/tenants/footenant/groups/foogroup/sacgs/ HTTP/1.1 Host: example.com { "name": "test_sacg_valid", "maxSessions": 50, "maxOrigSessions": 50, "maxTermSessions": 50, "reservedSessions": 50, "reservedOrigSessions": 25, "reservedTermSessions": 25, "default": true, "countIntraSACGroupSessions": true, "devices": [{ "name": "APIO Test Device", "level": "Group" }], "blockEmergencyAndRepairCallsDueToSACLimits": true }
- Request JSON Object:
maxSessions (integer) – See ‘maxSessions’ from Group Session Admission Control Group attributes.
maxOrigSessions (integer) – See ‘maxOrigSessions’ from Group Session Admission Control Group attributes.
maxTermSessions (integer) – See ‘maxTermSessions’ from Group Session Admission Control Group attributes.
reservedSessions (integer) – See ‘reservedSessions’ from Group Session Admission Control Group attributes.
reservedOrigSessions (integer) – See ‘reservedOrigSessions’ from Group Session Admission Control Group attributes.
reservedTermSessions (integer) – See ‘reservedTermSessions’ from Group Session Admission Control Group attributes.
defaultGroup (boolean) – See ‘defaultGroup’ from Group Session Admission Control Group attributes.
countIntraSACGroupSessions (boolean) – See ‘countIntraSACGroupSessions’ from Group Session Admission Control Group attributes.
devices (array) – See ‘devices’ from Group Session Admission Control Group attributes.
blockEmergencyAndRepairCallsDueToSACLimits (boolean) – See ‘blockEmergencyAndRepairCallsDueToSACLimits’ from Group Session Admission Control Group attributes.
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
201 Created – instance created
invalid request due to invalid parameters, with possible sub-error codes:
2 INVALID_PARAMETERS, ‘Maximum number of user originating sessions can not exceed the maximum number of sessions.’. May occur if ‘maxOrigSessions’ is greater than ‘maxSessions’.
2 INVALID_PARAMETERS, ‘Maximum number of user terminating sessions can not exceed the maximum number of sessions.’. May occur if ‘maxTermSessions’ is greater than ‘maxSessions’.
2 INVALID_PARAMETERS, ‘The reserved session can not exceed the maximum session.’. May occur if ‘reservedSessions’ is greater than ‘maxSessions’.
2 INVALID_PARAMETERS, ‘The sum of reserved originating sessions and reserved terminating sessions can not exceed reserved sessions.’. May occur if the sum of ‘reservedOrigSessions’ and ‘reservedTermSessions’ is greater than ‘reservedSessions’.
Retrieve a session admission control group in a Group¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
(string: instance_name)/
¶ Read a session admission control group from a Group.
Authorization rights: minimum Group Admin.
Example request:
GET /api/v1/tenants/footenant/groups/foogroup/sacgs/test_sacg/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" { "devices": [{ "name": "DP_ApioUserTest", "level": "Group" }], "maxSessions": 0, "reservedSessions": 0, "default": false, "countIntraSACGroupSessions": false, "blockEmergencyAndRepairCallsDueToSACLimits": false }
- Response JSON Object:
devices (array) – the assigned devices to the SAC group. See Access Device.
maxSessions (integer) – the maximum number of concurrent sessions enter the maximum number of concurrent sessions allowed for the SAC group.
maxOrigSessions (integer) – the maximum number of concurrent user originating sessions.
maxTermSessions (integer) – the maximum number of concurrent user terminating sessions.
reservedSessions (integer) – the reserved number of concurrent sessions reserved. Value 0 means that the reservation mechanism is disabled.
reservedOrigSessions (integer) – the reserved number of concurrent user originating sessions reserved.
reservedTermSessions (integer) – the reserved number of concurrent user terminating sessions reserved.
defaultGroup (boolean) – specify whether this is the default SAC group.
countIntraSACGroupSessions (boolean) – specify whether intra SAC group sessions should be counted.
blockEmergencyAndRepairCallsDueToSACLimits (boolean) – specify whether to stop emergency calls when SAC limits are reached.
- Status Codes:
200 OK – no error.
404 Not Found – session admission control group not found.
Update a session admission control group in a Group¶
-
PUT
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
(string: instance_name)/
¶ Update a session admission control group in a Group.
Authorization rights: minimum Group Admin.
Example request:
PUT /api/v1/tenants/footenant/groups/foogroup/sacgs/test_sacg/ HTTP/1.1 Host: example.com { "name": "test_sacg_valid", "maxSessions": 50, "maxOrigSessions": 50, "maxTermSessions": 50, "reservedSessions": 50, "reservedOrigSessions": 25, "reservedTermSessions": 25, "default": true, "countIntraSACGroupSessions": true, "devices": [{ "name": "APIO Test Device", "level": "Group" }], "blockEmergencyAndRepairCallsDueToSACLimits": true }
- Request JSON Object:
name (integer) – See ‘name’ from Group Session Admission Control Group attributes.
maxSessions (integer) – See ‘maxSessions’ from Group Session Admission Control Group attributes.
maxOrigSessions (integer) – See ‘maxOrigSessions’ from Group Session Admission Control Group attributes.
maxTermSessions (integer) – See ‘maxTermSessions’ from Group Session Admission Control Group attributes.
reservedSessions (integer) – See ‘reservedSessions’ from Group Session Admission Control Group attributes.
reservedOrigSessions (integer) – See ‘reservedOrigSessions’ from Group Session Admission Control Group attributes.
reservedTermSessions (integer) – See ‘reservedTermSessions’ from Group Session Admission Control Group attributes.
defaultGroup (boolean) – See ‘defaultGroup’ from Group Session Admission Control Group attributes.
countIntraSACGroupSessions (boolean) – See ‘countIntraSACGroupSessions’ from Group Session Admission Control Group attributes.
devices (array) – See ‘devices’ from Group Session Admission Control Group attributes.
blockEmergencyAndRepairCallsDueToSACLimits (boolean) – See ‘blockEmergencyAndRepairCallsDueToSACLimits’ from Group Session Admission Control Group attributes.
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
200 OK – instance updated
invalid request due to invalid parameters, with possible sub-error codes:
2 INVALID_PARAMETERS, ‘Maximum number of user originating sessions can not exceed the maximum number of sessions.’. May occur if ‘maxOrigSessions’ is greater than ‘maxSessions’.
2 INVALID_PARAMETERS, ‘Maximum number of user terminating sessions can not exceed the maximum number of sessions.’. May occur if ‘maxTermSessions’ is greater than ‘maxSessions’.
2 INVALID_PARAMETERS, ‘The reserved session can not exceed the maximum session.’. May occur if ‘reservedSessions’ is greater than ‘maxSessions’.
2 INVALID_PARAMETERS, ‘The sum of reserved originating sessions and reserved terminating sessions can not exceed reserved sessions.’. May occur if the sum of ‘reservedOrigSessions’ and ‘reservedTermSessions’ is greater than ‘reservedSessions’.
Remove a list of session admission control groups¶
-
DELETE
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
¶ Remove a list of session admission control groups.
Authorization rights: minimum Group Admin.
Example request:
DELETE /api/v1/tenants/footenant/groups/foogroup/sacgs/ HTTP/1.1 Host: example.com Content-Type: "application/json" { "sacgs": [{ "name": "test_sacg_valid", }] }
- Request JSON Object:
sacgs (array) – a list sacgs names. See ‘name’ from Group Session Admission Control Group in list attributes.
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" {}
- Status Codes:
200 OK – no error. Note that trying to delete a SAC group that is not present in the group will not generate an error
Remove a session admission control group¶
-
DELETE
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
(string: instance_name)/
¶ Remove a session admission control group.
Authorization rights: minimum Group Admin.
Example request:
DELETE /api/v1/tenants/footenant/groups/foogroup/sacgs/test_sacg_valid/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" {}
- Status Codes:
200 OK – no error. Note that trying to delete a SAC group that is not present in the group will not generate an error
Add devices in a session admission control group¶
-
POST
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
(string: instance_name)/devices/
¶ Add a list of devices in a session admission control group.
Authorization rights: minimum Group Admin.
Example request:
POST /api/v1/tenants/footenant/groups/foogroup/sacgs/test_sacg/devices/ HTTP/1.1 Host: example.com Content-Type: "application/json" { "devices": [{ "name": "DP_ApioUserTest", "level": "Group" }] }
- Request JSON Object:
instance_name (string) – Length in range 1 - 40.
devices (array) – a list of objects as defined as Access Device.
Example response:
HTTP/1.1 201 CREATED Content-Type: "application/json" {}
- Status Codes:
201 Created – no error.
400 Bad Request – bad request due to invalid parameters or device already in this session admission control group.
Retrieve session admission control group devices in a Group¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
(string: instance_name)/devices/
¶ Retrieve session admission control group devices in a Group.
Authorization rights: minimum Group Admin.
Example request:
GET /api/v1/tenants/footenant/groups/foogroup/sacgs/test_sacg/devices/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" { "devices": [{ "name": "DP_ApioUserTest", "level": "Group" }] }
- Response JSON Object:
devices (array) – the assigned devices to the SAC group. See Access Device.
- Status Codes:
200 OK – no error.
404 Not Found – session admission control group not found.
Remove devices from a session admission control group¶
-
DELETE
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/sacgs/
(string: instance_name)/devices/
¶ Remove a list of devices from a session admission control group.
Authorization rights: minimum Group Admin.
Example request:
DELETE /api/v1/tenants/footenant/groups/foogroup/sacgs/test_sacg/devices/ HTTP/1.1 Host: example.com Content-Type: "application/json" { "devices": [{ "name": "DP_ApioUserTest", "level": "Group" }] }
- Request JSON Object:
instance_name (string) – Length in range 1 - 40.
devices (array) – a list of objects as defined as Access Device.
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" {}
- Status Codes:
200 OK – no error. Note that trying to delete a device that is not present in the group will not generate an error
Session Admission Capacity Control¶
The Session Admission Control (SAC) feature allows the system administrator to restrict the number of simultaneous sessions allowed for the group.
Retrieve the session admission capacity control settings¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/capacity_control/
¶ Retrieve the session admission capacity control settings.
Authorization Rights: minimum Group Admin.
Example request:
GET /api/v1/tenants/footenant/groups/foogroup/capacity_control/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: "application/json" { "restrictAggregateSessions": true, "maxSessions": 50, "maxUserOriginatingSessions": 50, "maxUserTerminatingSessions": 50, "countIntraGroupSessions": true }
- Response JSON Object:
restrictAggregateSessions (boolean) – Specify if to restrict the number of concurrent subscriber sessions. When False, no limits are imposed. When True the maximum allowed number of concurrent subscriber sessions for the group is as defined by ‘maxSessions’.
maxSessions (string) – The maximum number of simultaneous subscriber sessions allowed for the group.
maxUserOriginatingSessions (string) – The maximum number of simultaneous originating sessions allowed for the group.
maxUserTerminatingSessions (string) – The maximum number of simultaneous terminating sessions allowed for the group.
countIntraGroupSessions (string) – Determines whether calls made within the group count toward the total number of sessions.
- Status Codes:
200 OK – no error.
Modify the session admission capacity control settings¶
-
PUT
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/capacity_control/
¶ Modify the session admission capacity control settings.
Authorization Rights: minimum Tenant Admin.
Example request:
PUT /api/v1/tenants/footenant/groups/foogroup/capacity_control/ HTTP/1.1 Host: example.com Content-Type: "application/json" { "restrictAggregateSessions": true, "maxSessions": 50, "maxUserOriginatingSessions": 50, "maxUserTerminatingSessions": null, "countIntraGroupSessions": true }
- Request JSON Object:
restrictAggregateSessions (boolean) – (Optional) Specify if to restrict the number of concurrent subscriber sessions. When False, no limits are imposed. When True the maximum allowed number of concurrent subscriber sessions for the group is as defined by ‘maxSessions’.
maxSessions (string) – (Conditional) The maximum number of simultaneous subscriber sessions allowed for the group. It is mandatory when ‘restrictAggregateSessions’ is True and no value has been setted previously.
maxUserOriginatingSessions (string) – (Optional) The maximum number of simultaneous originating sessions allowed for the group. Cannot exceed the ‘maxSessions’.
maxUserTerminatingSessions (string) – (Optional) The maximum number of simultaneous terminating sessions allowed for the group. Cannot exceed the ‘maxSessions’.
countIntraGroupSessions (string) – (Optional) Determines whether calls made within the group count toward the total number of sessions.
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
200 OK – no error
400 Bad Request – bad request with possible sub-error codes:
9: MISSING_CONDITIONAL_PARAMETERS, ‘Maximum number of sessions is required when Session Admission Control controls both aggregate sessions and SAC groups.’