# Ring Groups

Manage your ring groups.

## List ring groups.

> Retrieve a collection of ring groups.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups":{"get":{"tags":["Ring Group"],"operationId":"listRingGroups","summary":"List ring groups.","description":"Retrieve a collection of ring groups.\n","parameters":[{"name":"filter","in":"query","schema":{"type":"string"},"description":"Use the `filter` query parameter to retrieve just a subset of a collection.\n"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Use the `search` query parameter to restrict the results of a request to match a search criterion.\n"},{"name":"orderby","in":"query","schema":{"type":"string"},"description":"Use the `orderby` query parameter to specify the sort order of the items returned from server.  \nThe default order is ascending order.\n"},{"name":"skip","in":"query","schema":{"type":"integer","format":"int32","minimum":0,"default":0},"description":"Use the `skip` query parameter to set the number of items to skip at the start of a collection.\n"},{"name":"top","in":"query","schema":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":100},"description":"Use the `top` query parameter to specify the page size of the result set.\n"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","format":"int64","minimum":0,"description":"Total number of resource.\n"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of ring group.\n"},"extension_number":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"},"ring_time":{"type":"integer","format":"int32","minimum":0,"default":20,"description":"Duration that each extension will ring, in seconds.\n"},"ring_strategy":{"type":"string","enum":["RING_SIMULTANEOUSLY","PRIORITIZED_HUNT","CYCLIC_HUNT","LEAST_WORKED_HUNT","PAGING_INTERCOM","SKILL_BASED_ROUTING_PRIORITIZED_HUNT","SKILL_BASED_ROUTING_CYCLIC_HUNT","SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"],"description":"Ring strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available members of the group simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available member of the group serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n- `PAGING_INTERCOM`: Ring all available members of the group simultaneously and add an auto answer indication to the calls in order to invoke a page.\n- `SKILL_BASED_ROUTING_PRIORITIZED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially in the configured order.\n- `SKILL_BASED_ROUTING_CYCLIC_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `SKILL_BASED_ROUTING_LEAST_WORKED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n"},"skip_busy_member":{"type":"boolean","description":"Indicates if members on call would be skipped.\n"},"enable_paid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `P-Asserted-Identity` header.\n"},"enable_prid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `Remote-Party-ID` header.\n"},"extension_number_as_to_header":{"type":"boolean","default":false,"description":"Whether to user extension number as invite `To` header.\n"},"no_answer_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}}}}}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Create a ring group

> Add a new ring group.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups":{"post":{"tags":["Ring Group"],"operationId":"createRingGroup","summary":"Create a ring group","description":"Add a new ring group.\n","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of ring group.\n"},"extension_number":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"},"ring_time":{"type":"integer","format":"int32","minimum":0,"default":20,"description":"Duration that each extension will ring, in seconds.\n"},"ring_strategy":{"type":"string","enum":["RING_SIMULTANEOUSLY","PRIORITIZED_HUNT","CYCLIC_HUNT","LEAST_WORKED_HUNT","PAGING_INTERCOM","SKILL_BASED_ROUTING_PRIORITIZED_HUNT","SKILL_BASED_ROUTING_CYCLIC_HUNT","SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"],"description":"Ring strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available members of the group simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available member of the group serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n- `PAGING_INTERCOM`: Ring all available members of the group simultaneously and add an auto answer indication to the calls in order to invoke a page.\n- `SKILL_BASED_ROUTING_PRIORITIZED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially in the configured order.\n- `SKILL_BASED_ROUTING_CYCLIC_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `SKILL_BASED_ROUTING_LEAST_WORKED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n"},"skip_busy_member":{"type":"boolean","description":"Indicates if members on call would be skipped.\n"},"enable_paid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `P-Asserted-Identity` header.\n"},"enable_prid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `Remote-Party-ID` header.\n"},"extension_number_as_to_header":{"type":"boolean","default":false,"description":"Whether to user extension number as invite `To` header.\n"},"no_answer_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"outbound_caller_ids":{"type":"array","items":{"type":"object","properties":{"provider_id":{"allOf":[{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of trunk.\n"}],"description":"The unique ID of trunk.\n"},"caller_id":{"allOf":[{"type":"string","minLength":1,"maxLength":64,"description":"Outbound caller id.\n"}],"description":"The caller ID.\n"},"description":{"type":"string","maxLength":1024,"description":"The descriptive information about this outbound caller id.\n"}}},"description":"A collection of outbound caller IDs.\n"}}}}}},"responses":{"200":{"description":"Created ring group","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Retrieve a ring group

> Retrieve ring group by ID.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups/{id}":{"get":{"tags":["Ring Group"],"operationId":"showRingGroup","summary":"Retrieve a ring group","description":"Retrieve ring group by ID.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"description":"The unique ID of the ring group."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of ring group.\n"},"extension_number":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"},"ring_time":{"type":"integer","format":"int32","minimum":0,"default":20,"description":"Duration that each extension will ring, in seconds.\n"},"ring_strategy":{"type":"string","enum":["RING_SIMULTANEOUSLY","PRIORITIZED_HUNT","CYCLIC_HUNT","LEAST_WORKED_HUNT","PAGING_INTERCOM","SKILL_BASED_ROUTING_PRIORITIZED_HUNT","SKILL_BASED_ROUTING_CYCLIC_HUNT","SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"],"description":"Ring strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available members of the group simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available member of the group serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n- `PAGING_INTERCOM`: Ring all available members of the group simultaneously and add an auto answer indication to the calls in order to invoke a page.\n- `SKILL_BASED_ROUTING_PRIORITIZED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially in the configured order.\n- `SKILL_BASED_ROUTING_CYCLIC_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `SKILL_BASED_ROUTING_LEAST_WORKED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n"},"skip_busy_member":{"type":"boolean","description":"Indicates if members on call would be skipped.\n"},"enable_paid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `P-Asserted-Identity` header.\n"},"enable_prid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `Remote-Party-ID` header.\n"},"extension_number_as_to_header":{"type":"boolean","default":false,"description":"Whether to user extension number as invite `To` header.\n"},"no_answer_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"outbound_caller_ids":{"type":"array","items":{"type":"object","properties":{"provider_id":{"allOf":[{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of trunk.\n"}],"description":"The unique ID of trunk.\n"},"caller_id":{"allOf":[{"type":"string","minLength":1,"maxLength":64,"description":"Outbound caller id.\n"}],"description":"The caller ID.\n"},"description":{"type":"string","maxLength":1024,"description":"The descriptive information about this outbound caller id.\n"}}},"description":"A collection of outbound caller IDs.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Update a ring group

> Update a ring group<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups/{id}":{"post":{"tags":["Ring Group"],"operationId":"updateRingGroup","summary":"Update a ring group","description":"Update a ring group\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"description":"The unique ID of the ring group."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of ring group.\n"},"ring_time":{"type":"integer","format":"int32","minimum":0,"default":20,"description":"Duration that each extension will ring, in seconds.\n"},"ring_strategy":{"type":"string","enum":["RING_SIMULTANEOUSLY","PRIORITIZED_HUNT","CYCLIC_HUNT","LEAST_WORKED_HUNT","PAGING_INTERCOM","SKILL_BASED_ROUTING_PRIORITIZED_HUNT","SKILL_BASED_ROUTING_CYCLIC_HUNT","SKILL_BASED_ROUTING_LEAST_WORKED_HUNT"],"description":"Ring strategy:   \nCan be either:   \n- `RING_SIMULTANEOUSLY`: Ring all available members of the group simultaneously.\n- `PRIORITIZED_HUNT`: Ring each available member of the group serially in the configured order.\n- `CYCLIC_HUNT`: Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `LEAST_WORKED_HUNT`: Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n- `PAGING_INTERCOM`: Ring all available members of the group simultaneously and add an auto answer indication to the calls in order to invoke a page.\n- `SKILL_BASED_ROUTING_PRIORITIZED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially in the configured order.\n- `SKILL_BASED_ROUTING_CYCLIC_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't been rung from a call from this group in the longest amount of time first.\n- `SKILL_BASED_ROUTING_LEAST_WORKED_HUNT`: The call assign to the agents in the level \"1\" skill group first,   \n    and move on to the less experienced agents in subsequent skill groups, if the call is not answered in current skill group.   \n    Ring each available member of the group serially, ring the member that hasn't answered a call from this group in the longest amount of time first.\n"},"skip_busy_member":{"type":"boolean","description":"Indicates if members on call would be skipped.\n"},"enable_paid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `P-Asserted-Identity` header.\n"},"enable_prid":{"type":"boolean","default":false,"description":"Whether to add ring group information into `Remote-Party-ID` header.\n"},"extension_number_as_to_header":{"type":"boolean","default":false,"description":"Whether to user extension number as invite `To` header.\n"},"no_answer_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"outbound_caller_ids":{"type":"array","items":{"type":"object","properties":{"provider_id":{"allOf":[{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of trunk.\n"}],"description":"The unique ID of trunk.\n"},"caller_id":{"allOf":[{"type":"string","minLength":1,"maxLength":64,"description":"Outbound caller id.\n"}],"description":"The caller ID.\n"},"description":{"type":"string","maxLength":1024,"description":"The descriptive information about this outbound caller id.\n"}}},"description":"A collection of outbound caller IDs.\n"}}}}}},"responses":{"200":{"description":"OK"},"4XX":{"description":"Error"}}}}}}
```

## List ring group agents

> Retrieve a collection of ring group agents.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups/{id}/agents":{"get":{"tags":["Ring Group"],"operationId":"listRingGroupAgents","summary":"List ring group agents","description":"Retrieve a collection of ring group agents.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"description":"The unique ID of the ring group."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"extension_number":{"allOf":[{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"}],"description":"The extension number of agent.\n"},"display_name":{"allOf":[{"type":"string","maxLength":1024,"description":"The display name of user.\n"}],"readOnly":true,"description":"The display name of agent.\n"},"skill_level":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":1,"description":"The skill level of agent in ring group.   \nOnly valid when `ring_strategy` is skill based.\n"}}}}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Update ring group member list

> Update ring group member list.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups/{id}/agents":{"post":{"tags":["Ring Group"],"operationId":"updateRingGroupMemberList","summary":"Update ring group member list","description":"Update ring group member list.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"description":"The unique ID of ring group."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"extension_number":{"allOf":[{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"}],"description":"The extension number of agent.\n"},"display_name":{"allOf":[{"type":"string","maxLength":1024,"description":"The display name of user.\n"}],"readOnly":true,"description":"The display name of agent.\n"},"skill_level":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":1,"description":"The skill level of agent in ring group.   \nOnly valid when `ring_strategy` is skill based.\n"}}},"description":"Collection of agents.\n"}}}}}},"responses":{"200":{"description":"OK"},"4XX":{"description":"Error"}}}}}}
```

## Retrieve ring group agent details.

> Retrieve information of ring group agent.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups/{id}/agents/{agent_number}":{"get":{"tags":["Ring Group"],"operationId":"retrieveRingGroupAgent","summary":"Retrieve ring group agent details.","description":"Retrieve information of ring group agent.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"description":"The unique ID of the ring group."},{"name":"agent_number","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"},"description":"The extension number of the agent."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"extension_number":{"allOf":[{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"}],"description":"The extension number of agent.\n"},"display_name":{"allOf":[{"type":"string","maxLength":1024,"description":"The display name of user.\n"}],"readOnly":true,"description":"The display name of agent.\n"},"skill_level":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":1,"description":"The skill level of agent in ring group.   \nOnly valid when `ring_strategy` is skill based.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Destroy a ring group

> Destroy a ring group<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Ring Group","description":"Manage your ring groups.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ring_groups/{id}/destroy":{"post":{"tags":["Ring Group"],"operationId":"deleteRingGroup","summary":"Destroy a ring group","description":"Destroy a ring group\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of ring group.\n"},"description":"The unique ID of the ring group."}],"responses":{"204":{"description":"No Content"},"400":{"description":"Invalid ring group ID supplied."}}}}}}
```
